[英]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.