找不到路径'C:\的一部分

New*_*bie 3 c# directory

我得到这个错误.即使我已经创建了一个文件夹"CMSExportedData"找不到路径'C:\ CMSExportedData\Sales-20\07\2012.txt'的一部分.

请帮忙

using (FileStream fs = new FileStream("C:\\CMSExportedData\\Sales-" + DateTime.Now.ToString("dd/MM/yyyy") + ".txt", FileMode.Create))
{
    using (StreamWriter sw = new StreamWriter(fs, Encoding.Default))
    {
        //use stream
    }
}
Run Code Online (Sandbox Code Playgroud)

pho*_*oog 7

您将日期格式化为文件名的一部分,使日期分隔符为斜杠,并通过路径逻辑转换为反斜杠(路径分隔符):

'C:\ CMSExportedData \销售-20\07\2012.txt'.

没有Sales-20文件夹,也没有07文件夹.

解决方案:不要在文件名中使用路径分隔符:).此解决方案还将日期格式化为年 - 月 - 日,因为这会使文件名按时间顺序排序:

"C:\\CMSExportedData\\Sales-" + DateTime.Now.ToString("yyyyMMdd") + ".txt"
Run Code Online (Sandbox Code Playgroud)


Fel*_*ano 5

文件名不能包含以下任何字符:

\ / : * ? " < > |
Run Code Online (Sandbox Code Playgroud)

显然,您的日期格式使用'/'是不允许的。建议可以使用“-”作为分隔符,这样您的文件将是:

C:\CMSExportedData\Sales-20-07-2012.txt
Run Code Online (Sandbox Code Playgroud)

为了完整起见,可以接受的非字母数字字符是:

 ^   Accent circumflex (caret)
   &   Ampersand
   '   Apostrophe (single quotation mark)
   @   At sign
   {   Brace left
   }   Brace right
   [   Bracket opening
   ]   Bracket closing
   ,   Comma
   $   Dollar sign
   =   Equal sign
   !   Exclamation point
   -   Hyphen
   #   Number sign
   (   Parenthesis opening
   )   Parenthesis closing
   %   Percent
   .   Period
   +   Plus
   ~   Tilde
   _   Underscore
Run Code Online (Sandbox Code Playgroud)