相关疑难解决方法(0)

C#File.Exists返回false,文件确实存在

使用VS 15,C#和.Net 4.5.2
计算机位于AD网络上,广告名称为"AD".
AD正常用户权限,AD管理员权限和本地管理员权限会发生此问题.无论程序获得什么权利,都会出现同样的问题.

我们的测试文件是" C:/windows/system32/conhost.exe ".
上面的文件存在,它是非常存在的.我可以用资源管理器看到它.

这是资源管理器中的文件:
在此输入图像描述

这是文件属性:
在此输入图像描述

你可以看到它在那里,对吗?
以下cmd命令检查文件是否存在:

IF EXIST "C:\windows\system32\conhost.exe" (echo does exist) ELSE (echo doesnt exist)
Run Code Online (Sandbox Code Playgroud)

它按照承诺返回" 确实存在 ".

以下C#代码检查文件是否存在:

FileInfo file = new FileInfo("C:/windows/system32/conhost.exe");
MessageBox.Show(file.Exists + "");
Run Code Online (Sandbox Code Playgroud)

返回" False ".

此代码也返回" False ":

MessageBox.Show(File.Exists("C:/windows/system32/conhost.exe") + "");
Run Code Online (Sandbox Code Playgroud)

此代码也找不到它:

foreach (string file in Directory.GetFiles("C:/windows/system32/"))
{
    //conhost is NEVER mentioned, like it doesn't exist
}
Run Code Online (Sandbox Code Playgroud)

此代码也找不到它:

foreach (string file in Directory.EnumerateFiles("C:/windows/system32/"))
{
    //conhost is NEVER mentioned, like it doesn't exist
}
Run Code Online (Sandbox Code Playgroud)

假,假,假:

MessageBox.Show(File.Exists("C:/windows/system32/conhost.exe") + ""); …
Run Code Online (Sandbox Code Playgroud)

c# file file-exists

28
推荐指数
2
解决办法
1万
查看次数

以管理员身份运行Visual Studio不会看到映射的网络驱动器

我的方式File.Exists()(不)工作有问题:当我使用它时,它声称该文件不存在(来自立即窗口):

filePath
"P:\\poolman\\LY21\\2015\\LY21_2015-03-25_03.xml"
File.Exists(filePath)
false
Run Code Online (Sandbox Code Playgroud)

但是,如果我将文件路径复制/粘贴到资源管理器窗口URL(删除转义\),则会打开该文件.

因此File.Exists()声称现有的文件不存在会让我感到烦恼.

这不是路径长度(43),FileInfo并不是这里建议的更好的选择.

这是FileInfo检查的结果:

var f = new FileInfo(filePath);
{P:\poolman\LY21\2015\LY21_2015-03-25_03.xml}
    base: {P:\poolman\LY21\2015\LY21_2015-03-25_03.xml}
    _name: "LY21_2015-03-25_03.xml"
    Directory: {P:\poolman\LY21\2015}
    DirectoryName: "P:\\poolman\\LY21\\2015"
    Exists: false
    IsReadOnly: true
    Length: '(var f = new FileInfo(filePath);).Length' threw an exception of type 'System.IO.FileNotFoundException'
    Name: "LY21_2015-03-25_03.xml"
Run Code Online (Sandbox Code Playgroud)

我怎么处理它?

.net c#

22
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×2

.net ×1

file ×1

file-exists ×1