繁体   English   中英

C#保存名称中带有“ /”的文件

[英]C# Save file with “/” in name

FileName包含例如Legend / Dery // Times

File.WriteAllBytes("/Pictures" + FileName, buffer);

我无法保存文件,因为“ /”被视为路径,我也无法删除“ /”,因为我需要它进行进一步处理。 有什么办法保存这种文件吗?

你真倒霉 正斜杠不能是文件名的一部分。

您需要以某种方式进行转义 (即更改名称,但提供一种改回名称的方法),但是实际上并没有一种常规的方法。

我已经看到%用于此目的, %%用于表示单个% ,诸如%f代表正斜杠, %b代表反斜杠等。

Microsoft定义了一些名称和文件夹规则,这意味着您不能这样做。

我建议您在保存文件和尝试访问文件时都对输入进行标准化,而不是转义:

//replace all illegal characters with regex (with a dash):
new Regex(@"[<>:""/\\|?*]").Replace("Inpu|t","-")

//Or just replace all non alpha numeric characters (with a dash): 
new Regex(@"[^a-zA-Z0-9\-]").Replace("Inpu|t","-")

这样,您将始终拥有干净的文件和文件夹名称,而不必担心非法名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM