文件未找到例外..但它就在那里

时间:2009-08-29 00:56:11

标签: c# file .net

嘿,这将是一个愚蠢的问题。我正在尝试在我的本地系统上获取一个文件,并且不断被FileNotFoundException抛出。

有人请我直截了当:)

if( File.Exists(@"C:\logs\hw-healthways-prod_2009-08-26.tar"))
{
     Console.WriteLine("Yay");
}
else
{
     throw new FileNotFoundException();   
}

尝试将文件移动到与正在执行的应用程序相同的位置,并执行以下操作:

 if( File.Exists("hw-healthways-prod_2009-08-26.tar"))

同样的事情。

然后我做了一个随机的txt文件并把它停在那里..“me.txt”

它有效吗?!那么你的文件名就是问题吗?

4 个答案:

答案 0 :(得分:13)

尝试Directory.GetFiles(@"C:\logs")。有问题的文件可能是由Windows资源管理器以某种方式解释的奇怪字符(大概是从“?”读取“文件属性”的地方),但.NET Framework采用不同的方式。如果文件名中包含UTF-8字符(可能是短划线?),就会发生这种情况。

答案 1 :(得分:10)

该文件的名称可能是“hw-healthways-prod_2009-08-26 .tar.tar ”而不是“hw-healthways-prod_2009-08-26 .tar “,我遇到了这个问题,因为默认情况下,扩展文件隐藏在Windows上

答案 2 :(得分:0)

您可能想要检查文件权限。您的计算机可能没有该文件的权限。

答案 3 :(得分:-6)

C:\ logs \ hw-healthways-prod_2009-08-26.tar应为C:\\ logs \\ hw-healthways-prod_2009-08-26.tar。 \表示下一个字符是转义字符。