检查共享路径在 pc 中是不是可用

Posted

技术标签:

【中文标题】检查共享路径在 pc 中是不是可用【英文标题】:check shared path is available in pc检查共享路径在 pc 中是否可用 【发布时间】:2014-09-07 13:10:04 【问题描述】:

我在 .net compact framework 3.5 中工作。我正在开发一个在 pocket pc 中工作的应用程序。 Pocket PC 设备应连接到本地 PC。用户可以在本地 PC 中创建共享文件夹,并可以将文件从pocket pc发送到共享文件夹。我要求用户在我的应用程序中输入共享文件夹路径,文件夹格式为(\Shared-PC-Name\FolderName)。我需要检查用户输入的共享文件夹路径是否存在于本地PC中。我编写了将文件发送到本地PC共享文件夹的代码。我不知道如何检查用户输入的文件夹名称存在于本地电脑中。

请帮我做这件事。

谢谢

【问题讨论】:

【参考方案1】:
        string testString = "C:\temp";

        DirectoryInfo di = new DirectoryInfo(testString);
        if (di.Exists) return true;

我只能假设 System.IO 存在于紧凑框架中并且它具有 .Exists 函数。

【讨论】:

【参考方案2】:

您必须使用来自 pocketpc 的 Wnet API 并尝试连接到共享资源。有

a) PocketPC 上没有驱动器号

b) 没有用于检查共享是否存在的 API。

要尝试连接,请使用

DWORD WNetAddConnection3(HWND hwndOwner, LPNETRESOURCE
   lpNetResource, LPCWSTR lpPassword, LPCWSTR lpUserName,
   DWORD dwFlags);

LPNETRESOURCE 是:

typedef struct _NETRESOURCE 
   DWORD dwScope;
   DWORD dwType;
   DWORD dwDisplayType;
   DWORD dwUsage;
   LPWSTR lpLocalName;
   LPWSTR lpRemoteName;
   LPWSTR lpComment;
   LPWSTR lpProvider;
 NETRESOURCE, *LPNETRESOURCE;

在 PC 上类似。您可以浏览远程主机或输入共享资源的 URI,但没有 API 可以检查共享资源是否存在。您可以在 PC 上发出 NET VIEW 命令来列出给定域、工作组或主机共享的资源。

您可以使用 WNetOpenEnum 获取共享资源列表,并查看结果中是否存在资源:http://msdn.microsoft.com/en-us/library/ms898713.aspx

OpenNetCF 为您提供 .net 功能:

/// <summary>
/// Enumerates network resources.
/// </summary>
/// <param name="remoteName">The name of the server</param>
/// <returns>Array of NetworkResource class</returns>
public static NetworkResource[] GetNetworkResources(string remoteName)

它是 OpenNETCF.Net 命名空间的一部分。因此,您无需为所需的 WNet API 调用编写自己的 p/invoke 代码。

另见http://msdn.microsoft.com/en-us/library/ms885813.aspx

【讨论】:

以上是关于检查共享路径在 pc 中是不是可用的主要内容,如果未能解决你的问题,请参考以下文章

缺少 mysqli 扩展。请检查您的 PHP 配置,即使文件在定义的路径中可用

检查 NFS 共享是不是安装在 python 脚本中

如何:在检查不可用的网络共享时防止超时 - C#

检查路径在 Python 中是不是有效,而不在路径的目标处创建文件

在c#中检查路径中是不是存在文件夹?

无法与 Docker 中的容器共享本地 Windows 路径