检查共享路径是否在pc中可用
本文关键字:pc 共享 路径 是否 检查 | 更新日期: 2023-09-27 18:20:53
我在.net compact framework 3.5中工作。我正在开发一个在掌上电脑中工作的应用程序。掌上电脑设备应该连接到本地电脑。用户可以在本地电脑中创建共享文件夹,并可以将文件从掌上电脑发送到共享文件夹。我要求用户在我的应用程序中输入共享文件夹路径,文件夹格式为(''Shared PC Name''FolderName)。我需要检查用户输入的共享文件夹路径是否存在于本地PC中。我用代码将文件发送到该本地PC共享文件夹。我不知道如何检查用户输入的文件夹名称是否存在于本地电脑中
请帮我做这件事。
感谢
string testString = "C:'temp";
DirectoryInfo di = new DirectoryInfo(testString);
if (di.Exists) return true;
我只能假设System.IO存在于紧凑框架中,并且它具有.exists函数。
您必须使用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来检查共享资源的存在。您可以在电脑上发出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