不能在C#中同时使用StreamWriter和'\'char

时间:2012-08-18 19:08:26

标签: c# character streamwriter

void addFile(string aFile)
{

    using (StreamWriter sw = new StreamWriter(@"C:\"+ aFile))
         sw.WriteLine("Some Text");
}

如果文本包含/字符,则会收到无法找到此类目录的错误。

示例:aFile="1/2 Half.c" => C:/1/2 Half.c =>目录1不存在。

如何将字符串"1/2 Half.txt"放在C:\或包含/\的任何文件中?

3 个答案:

答案 0 :(得分:6)

有几个保留字符在文件名中是非法的。 '/'和'\'是其中两个。

以下是MSDN中文件命名的准则:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#naming_conventions

答案 1 :(得分:3)

您使用的斜杠是文件名的无效字符。

答案 2 :(得分:2)

将无效字符替换为有效字符。您可以使用Path.GetInvalidFileNameChars

var invalidChars = Path.GetInvalidFileNameChars();
var newFileName = new string(
                        fname.Select(c=>invalidChars.Contains(c)?'_':c).ToArray());