C# 以“/”保存文件名
C# Save file with "/" in name
文件名包含例如Legend/Dery//次数
File.WriteAllBytes("/Pictures" + FileName, buffer);
我无法保存文件,因为“/”被视为路径,我也无法删除“/”,因为我需要它进行进一步处理。有什么方法可以保存这样的文件吗?
你真倒霉。正斜杠不能是文件名的一部分。
您需要以某种方式转义它(即更改名称但提供一种将其改回的方法),但实际上并没有传统的方法。
我见过 %
用于此目的,%%
用于表示单个 %
,而 %f
用于表示正斜杠, %b
表示反斜杠等
有 rules for names and folders defined by 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","-")
这样您将始终拥有干净的文件和文件夹名称,而不必担心非法名称。
文件名包含例如Legend/Dery//次数
File.WriteAllBytes("/Pictures" + FileName, buffer);
我无法保存文件,因为“/”被视为路径,我也无法删除“/”,因为我需要它进行进一步处理。有什么方法可以保存这样的文件吗?
你真倒霉。正斜杠不能是文件名的一部分。
您需要以某种方式转义它(即更改名称但提供一种将其改回的方法),但实际上并没有传统的方法。
我见过 %
用于此目的,%%
用于表示单个 %
,而 %f
用于表示正斜杠, %b
表示反斜杠等
有 rules for names and folders defined by 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","-")
这样您将始终拥有干净的文件和文件夹名称,而不必担心非法名称。