相关疑难解决方法(0)

检查网络驱动器上是否存在目录

我正在尝试检测目录是否存在,但在这种特殊情况下,我的目录是网络位置.我使用的是VB.NET My.Computer.FileSystem.DirectoryExists(PATH),而且更通用System.IO.Directory.Exists(PATH),在这两种情况下,系统响应都是错误的.我检查了PATH,我可以在MyComputer文件夹中查看它.如果我调试程序并观察My.Computer.FileSystem.Drives变量,则网络位置不会出现在该列表中.

更新:我检查并在Windows XP中响应为真,但在Windows 7中没有.

更新2:我测试了两个建议的解决方案,但我仍然遇到同样的问题,在下图中你会看到我可以使用资源管理器访问但我的程序不能.该GetUNCPath函数返回有效路径(无错误),但Directory.Existsstil返回false.

我还尝试使用UNC路径"\\ Server\Images"; 同样的结果.

在此输入图像描述

更新3: 如果我无法与网络驱动器链接,我如何直接链接到UNC路径?我发现如果我在正常模式下运行VS,它可以工作,但我的软件必须以管理员模式运行.那么,有没有办法检查网络目录是否存在?

c# vb.net windows .net-4.0

21
推荐指数
3
解决办法
3万
查看次数

如何确保为应用程序连接了网络驱动器?

我有一个安装在小型办公环境中的桌面Windows应用程序。

该应用程序使用.MDB数据库文件作为其数据库,该文件存储在网络驱动器上。

配置文件.MDB使用字母驱动器指定服务器上文件的路径:例如。f:\data\db.mdb

应用程序启动时需要访问此数据库文件。启动应用程序时,如何确保网络驱动器已连接且可访问?

有时Windows不会重新连接网络驱动器,并且连接它们的唯一方法是在“我的电脑”中双击它们,即使在映射驱动器时选中了“登录时重新连接”。

解决方案是使用\\machine_name\share代替驱动器号吗?

windows ms-access network-drive

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

检查服务器路径是否可用作C#中的文件共享

我想快速检查文件共享是否在C#中可用,但不知道网络共享上可能存在的目录.我发现这些帖子1 2 3显示了如何检查网络目录是否可用,但他们都假设我知道我想检查的目录共享是否存在.也就是说,他们想要检查\\ SomeServer\SomeDirectory是否可用,但我只是想检查是否有\\ SomeServer可用.

有关我正在尝试做什么的更多细节,我提示用户连接一个SQL服务器,他们给我一个地址,如"SQL001"; 显然这个地址仅在我们的内部网络上有效.有了这个地址,我就能连接到服务器及其数据库.现在,我给他们提供备份数据库的选项,并希望OpenFileDialog将InitialDirectory设置为"\\ SQL001",以便他们可以快速访问该服务器上的共享文件夹并在远程服务器上备份数据库.

如果我将"\\ SQL001"设置为OpenFileDialog的InitialDirectory,一切正常,但如果输入错误并输入"\\ SQL002"(不存在),或者在内部网络关闭时尝试使用该工具,那么OpenFileDialog的ShowDialog函数抛出一个错误.所以我想检查并确保文件共享首先可用,如果没有,我将不会设置InitialDirectory.

不幸的是,使用Directory.Exists("\\ SQL001")总是返回false.如果我使用Directory.Exists("\\ SQL001\Backups")它可以工作,但我们有许多不同的SQL服务器,并且它们并不都有一个名为"备份"的共享,因此这是不可靠的.我也可以使用适用于我的Directory.Exists("\\ SQL001\c $ \"),但许多员工不会拥有根C:\的权限,但会拥有网络共享的权限,所以不是一个很好的选择.

所以我的问题是,假设用户拥有文件共享权限,我该如何检查文件共享是否可用?另外,我不想强​​迫用户将"\\ SQL001"映射为网络驱动器.

我现在能看到的唯一解决方案是只调用OpenFileDialog的ShowDialog函数并捕获特定的异常,清除InitialDirectory然后再次调用ShowDialog.它会工作,但感觉有点hacky,所以我希望有一个更好的解决方案.

.net c# share exists unc

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

标签 统计

c# ×2

windows ×2

.net ×1

.net-4.0 ×1

exists ×1

ms-access ×1

network-drive ×1

share ×1

unc ×1

vb.net ×1