目录存在在桌面与服务器上产生不一致的结果

H20*_*der 6 c# windows

我有一个C#程序,它检查特定目录是否存在.

它只是做:

Directory.Exists(path).
Run Code Online (Sandbox Code Playgroud)

我也试过其他方法.使用DirectoryInfo并使用AlphaFS

在我的本地计算机上,路径存在.当我在具有相同凭据的服务器上运行相同的程序时,它不存在.

我想知道这是否是一个群体政策问题.但我能够上升到一个水平并看到它.

\ server\volume\share\sub目录 - 远程不存在但在我的桌面上它确实是 \server\volume\share - 我的桌面和远程服务器上都存在

更新 我忘记提及,因为我可以访问我的桌面,所以我获得了ACL信息.没有一个小组能够翻译.

我真的只是想让这个应用程序以与服务器上相同的方式运行,并找出它的行为方式不同.

更新2 这些是物理服务器.我的桌面是Liquid VDI

以下是代码:

 var path = txtPath.Text;
        using (var user = new Impersonation(fuserdomain, fc_user, fc_pass))
        {
            var alphaExists = Alphaleonis.Win32.Filesystem.Directory.Exists(path);
            var alphaDIExists = new Alphaleonis.Win32.Filesystem.DirectoryInfo(path).Exists;
            var SystemExists = System.IO.Directory.Exists(path);
            var SystemDIExists = new System.IO.DirectoryInfo(path).Exists;
            var AlphaHasFiles = false;
            var AlphaDIHasFiles = false;
            var SystemHasFiles = false;
            var SystemDIHasFiles = false;
            try
            {
                Directory.GetFiles(path);
                AlphaHasFiles = true;
            }
            catch {  }
            try
            {
                new DirectoryInfo(path).GetFiles();
                AlphaDIHasFiles = true;
            }
            catch {  }
            try
            {
                System.IO.Directory.GetFiles(path);
                SystemHasFiles = true;
            }
            catch { }
            try
            {
                new System.IO.DirectoryInfo(path).GetFiles();
                SystemDIHasFiles = true;
            }
            catch { }

            MessageBox.Show(string.Format("alphaExists: {0}\nalphaDIExists: {1}\nSystemExists: {2}\nSystemDIExists: {3}\nAlphaGetFiles: {4}\nAlphaDIGetFiles: {5}\nSystemGetFiles: {6}\nSystemDIGetFiles: {7}\n", alphaExists, alphaDIExists, SystemExists, SystemDIExists, AlphaHasFiles, AlphaDIHasFiles, SystemHasFiles, SystemDIHasFiles));
        }
Run Code Online (Sandbox Code Playgroud)

更新3 虽然我已解决此问题; 我仍然不确定为什么我的台式机和服务器之间会有所区别.是否有任何工具可以帮助我了解问题所在?

Lor*_*tel 2

我在 File.Exists 中看到了同样的情况。我从未找到答案并最终认输,我只是尝试使用它并捕获异常。

无论如何,健壮的代码必须捕获它,所有测试所做的就是避免尝试文件或目录不存在的情况。(而 PITA 表明 Visual Studio 不再以任何方式忽略某一行上的异常。运行时没有问题,开发中很烦人。)