文件名包含例如 Legend/Dery//Times
File.WriteAllBytes("/Pictures" + FileName, buffer);
我无法保存文件,因为“/”被视为路径,但我也无法删除“/”,因为我需要它进行进一步处理。有没有办法保存这样的文件?
文件名包含例如 Legend/Dery//Times
File.WriteAllBytes("/Pictures" + FileName, buffer);
我无法保存文件,因为“/”被视为路径,但我也无法删除“/”,因为我需要它进行进一步处理。有没有办法保存这样的文件?
你没有那么好的运气。斜线不能作为文件名的一部分。
你需要以某种方式进行转义(即更改名称但提供一种改回来的方法),但实际上并没有一种传统的方法可以做到这一点。
我见过把%
用于此目的,使用%%
表示单个%
,并使用类似于%f
代表正斜杠,%b
代表反斜杠等的方法。
我建议在保存文件和尝试访问文件时,不要使用转义字符,而是对输入进行规范化处理:
//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","-")
这样做可以让你始终拥有干净的文件和文件夹名称,而不必担心非法名称。