2017-05-29 77 views
0
  1. 文件存在函数总是返回false,即使文件存在。
  2. 我试图复制粘贴在运行中的文件路径n,并试图手动打开,甚至失败文件物理存在(Win7工作正常,Win8或更高版本)
  3. 尝试了几种来自互联网的解决方案。

File.Exists函数不能在Windows8或更高版本中工作

 string FilePath = @"‪D:\Test\alllllllllthe Data.docx"; 
    if (File.Exists(FilePath)) 
    { 
     string FileContent = File.ReadAllText(FilePath);

}
+0

你确定路径是正确的,我运行Windows 10 1703刚刚测试过这个。工作得很好。 –

+0

@JasonH - 按照以下步骤重现它。 1.在D/E驱动器中创建文件夹,例如:D: 2.在其下创建文件夹,例如:D:\ Test 3.创建/放置文件,例如:D:\ Test \ myFile.docx 4.右键单击文件>>属性>>安全性选项卡>>对象名称>>复制整个文件路径 5.按Win + R粘贴路径>>输入 –

+0

我尝试了一下自己的时间,它的8/10倍很容易重现。 –

回答

0

正确的,因为你是正确的,我会说实话,以不理解发生了什么变化导致此:

string filePath = @"D:\Folder\somefile.txt"; 
File.Exists(filePath) == TRUE // this is not happening 

我把这个了一步,做的:

try 
{ 
    var filePath = Path.GetFullPath("E:\\Folder\\somefile.txt"); 
    File.OpenRead(filePath); 
} 
catch (Exception ex) 
{ } 

抛出的异常是:
NotSupportedException: The given path's format is not supported.

这不工作,所以给这个一展身手:

var filePath = Path.GetFullPath("D:\\Folder\\somefile.txt"); 
File.Exists(filePath) == TRUE // this does work 

或者,您可以使用此网址:

var path = @"D:\Folder"; 
var fileName = "somefile.txt"; 
var filePath = Path.Combine(path, fileName); 
File.Exists(filePath) == TRUE // this does work 
+0

基本上,文件操作给我同样的错误**不支持给定路径的格式** –

+0

添加了一个替代选项以及 –

+1

我解决了这个问题,还有额外的字符?在不可见的路径开始。即使我粘贴在Win + R或记事本中。额外的字符被隐藏 所以我想出了解决方案。 私有字符串TrimInvalidChars(字符串FileFullPath) { \t int index = FileFullPath.IndexOf(“:”); if(index> 0) { \t FileFullPath = FileFullPath.Substring(index-1); } \t \t return FileFullPath; } –

相关问题