找不到路径的一部分'C:\
我得到这个错误。即使我已经创建了一个文件夹“CMSExportedData” 找不到路径'C:\ CMSExportedData \ Sales-20 \ 07 \ 2012.txt'的一部分。找不到路径的一部分'C:
请帮助请
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
}
}
你格式化日期作为文件名的一部分,这样的日期分隔符是斜杠,这得到转换为反斜杠(路径分隔符)的路径逻辑:
'C:\ CMSExportedData \ Sales-20 \ 07 \ 2012.txt'。
没有Sales-20文件夹,也没有07文件夹。
解决方案:不要在文件名中使用路径分隔符:)。该解决方案还格式化日期为年月日,因为按照时间顺序,使文件名排序:
"C:\\CMSExportedData\\Sales-" + DateTime.Now.ToString("yyyyMMdd") + ".txt"
文件名不能包含以下任何字符:
\/: * ? " < > |
显然你的约会格式化使用'/'
,这是不允许的。有人建议可以用“ - ”作为分隔符让你的文件将是:
C:\CMSExportedData\Sales-20-07-2012.txt
只是为了保持完整性,非字母数字charachters accebtable是:
^ 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
谢谢你亲爱的先生 – Newbie 2012-07-20 07:12:43
@Newbie欢迎:) – 2012-07-20 07:14:56
的问题是,要添加日期到你的文件名,用斜杠!
Windows文件系统中的每个斜线都分隔一个目录。因此,使用您的代码,它将查看Sales-20文件夹,然后查看07文件夹,并在该文件夹中尝试查找2012.txt。
最好的做法是不要在文件名中使用斜杠(甚至不认为你可以在Windows中手动操作),因此用' - '符号替换它们或删除任何字符。
谢谢@gerald Versluis – Newbie 2012-07-20 07:12:29
'20 \ 07 \ 2012':嗯,你真的认为在一条路径上有一个斜杠日期是个好主意吗? – 2012-07-20 06:58:15
您是否有一个Sales-20子文件夹,其中包含您要编写名为2012.txt的文件的07子文件夹? – 2012-07-20 06:59:05
这与sql-server-2008有什么关系? – 2012-07-20 07:00:05