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

嘿,这将是一个愚蠢的问题。 我试图在我的本地系统上获取一个文件,并且我不断收到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”

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

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

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

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

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