C# 找不到路径的一部分';C:\
我得到这个错误。即使我已经创建了一个文件夹“cmsexportedata” 找不到路径“C:\CMSExportedata\Sales-20\07\2012.txt”的一部分 请帮忙C# 找不到路径的一部分';C:\,c#,directory,C#,Directory,我得到这个错误。即使我已经创建了一个文件夹“cmsexportedata” 找不到路径“C:\CMSExportedata\Sales-20\07\2012.txt”的一部分 请帮忙 using (FileStream fs = new FileStream("C:\\CMSExportedData\\Sales-" + DateTime.Now.ToString("dd/MM/yyyy") + ".txt", FileMode.Create)) { using (StreamWrite
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:\cmsexportedata\Sales-20\07\2012.txt' 没有Sales-20文件夹,也没有07文件夹 解决方案:不要在文件名中使用路径分隔符:)。此解决方案还将日期格式化为年-月-日,因为这使文件名按时间顺序排序:
"C:\\CMSExportedData\\Sales-" + DateTime.Now.ToString("yyyyMMdd") + ".txt"
文件名不能包含以下任何字符:
\ / : * ? " < > |
为了完整起见,可接受的非字母数字字符包括:
^ 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
问题是,您正在向文件名添加日期,并带有斜杠 Windows文件系统中的每个斜杠都分隔一个目录。因此,使用您的代码,它将在Sales-20文件夹中查找,然后在07文件夹中查找,并在该文件夹中尝试查找2012.txt
最佳做法是永远不要在文件名中使用斜杠(甚至不要认为可以在Windows中手动使用斜杠),因此请将其替换为“-”符号或删除其中任何字符。
20\07\2012
:嗯,你真的认为在路径上用斜杠标注日期是个好主意吗?你有一个Sales-20子文件夹,其中包含一个07子文件夹,你想在其中写入一个名为2012.txt的文件吗?这与sql-server-2008有什么关系?我认为/甚至不是有效的路径字符拉斐尔:你说得对,我错了,费利斯:喜欢你的详细解释。谢谢我意识到了我的错误马克:因为我使用的是sql server 2008和vb 2010?亚历克斯:是的,你是对的。我的错误是其他人使用DateTime.Now.ToFileTime()@Aneef ToFileTime有什么帮助?它只返回一个Int64。作为文件名的按时间顺序排列的组件,这没有多大帮助。@phoog,如果我改为yyyyMMdd,我真的需要更改我的电脑和服务器的时间格式以匹配它吗?@Newbie你不必这样做。DateTime在内部以数字二进制格式存储;计算机的显示格式仅设置日期时间的默认字符串表示形式。对于上面的表达式,您使用的不是默认的字符串表示,而是自定义的字符串表示。由于您将其用作文件名的一部分,因此操作系统仅将其视为字符串。它甚至不知道这是约会;它可以是任何字符串。
^ 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