DirectoryNotFoundException: "Could not find part of the path" ,但路径存在(Directory.Exists 返回 true)



\FILESERVERMyFolder有一个共享的网络文件夹。安全主体EveryoneThis folder, subfolders and files上具有Full Control。文件夹上没有DENY权限。有三个用户,他们都可以使用文件资源管理器进入目录并创建一个名为test.txt的文件。

此代码对其中两个用户运行良好:

string testLocation = @"\FILESERVERMyFolder";
string testFullPath = Path.Combine(testLocation, "test.txt");
Directory.CreateDirectory(testLocation);
bool exists = Directory.Exists(testLocation); // RETURNS TRUE!
File.Create(testFullPath); // For one user, this raises:
// System.IO.DirectoryNotFoundException: Could not find part of the path
// '\FILESERVERMyFoldertest.txt'

所以Directory.CreateDirectory运行良好(文件夹已经存在(,但File.Create似乎认为目录不存在。作为那个用户,我可以在资源管理器中键入\FILESERVERMyFolder,查看那里的现有文件并创建新文件,没有问题。但在运行上面的代码时不会。

程序的进程是在有问题的用户下运行的。

这种情况只发生在网络路径上,而不是本地路径上如果将\FILESERVERMyFolder更改为C:UsersUsernameDesktop,则会创建该文件。

问题的背景是程序无法将XLSX文件导出到此特定用户的网络文件夹。在这种情况下,经过几天的研究,我试图解决这个问题,但一无所获:如果文件无法导出到网络文件夹,程序会将其导出到Desktop,然后尝试将其移动到网络文件夹。当然,程序在移动时会失败。我把它缩小到上面显示的片段。上面显示的代码与失败的代码完全相同,只是我更改了示例的服务器和文件夹的名称。

有什么想法吗?

重命名目录成功。该文件夹现在被命名为\FILESERVERMyFolderNew,而不是\FILESERVERMyFolder,并且它正在工作。如果我将文件夹重命名回MyFolder,它将再次停止工作。

我没有时间深入挖掘。我只知道这个目录没有防火墙/防病毒规则。重命名文件夹对我们有效。

相关内容

  • 没有找到相关文章