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","-")

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