检查共享路径在 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 配置,即使文件在定义的路径中可用