【发布时间】:2013-07-04 13:55:28
【问题描述】:
我正在尝试检测该目录是否存在,但在这种特殊情况下,我的目录是一个网络位置。
我使用了 VB.NET 的My.Computer.FileSystem.DirectoryExists(PATH) 和更通用的System.IO.Directory.Exists(PATH),在这两种情况下,系统响应都是错误的。
我检查了 PATH 存在,我可以在 MyComputer 文件夹中查看它。
如果我调试程序并观察My.Computer.FileSystem.Drives 变量,网络位置不会出现在该列表中。
更新:我检查过,在 Windows XP 中响应为 True,但在 Windows 7 中不是。
UPDATE2:我测试了两种建议的解决方案,但我仍然遇到同样的问题,在下图中你会看到我可以使用资源管理器访问,但我的程序不能。
GetUNCPath 函数返回有效路径(无错误),但 Directory.Exists 仍然返回 false。
我也尝试使用 UNC 路径“\\Server\Images”;同样的结果。
UPDATE3:如果我无法链接到网络驱动器,如何直接链接到 UNC 路径?我发现如果我在正常模式下运行 VS,它可以工作,但我的软件必须在管理员模式下运行。那么,有没有办法以管理员身份检查网络目录是否存在呢?
【问题讨论】:
-
听起来可能是 UAC 问题。您是否以管理员身份运行程序?
-
是的,我以管理员权限运行 Visual Studio。
-
我了解到您确实以预期的格式引入了路径,即:\\server_name\folder\file.this
-
不,我映射一个网络驱动器,所以我传递给函数的路径是 Z:\\FolderName
-
啊,好的。那我不知道怎么了。在硬盘驱动器或本地网络中使用 System.IO 定位文件/文件夹时,我从来没有遇到过任何问题。
标签: c# windows vb.net .net-4.0