2014-09-07 3 views
0

Я работаю в .net compact framework 3.5. Я разрабатываю приложение, работающее в pocket pc. Устройство Pocket PC должно быть подключено к локальному ПК. Пользователь может создать общую папку на локальном ПК и отправить файлы в общую папку с pocket pc. Я прошу пользователя ввести путь к общей папке в моем приложении, формат папки (\ Shared-PC-Name \ FolderName). Мне нужно проверить, существует ли путь к общей папке, введенный пользователем, в локальном PC.I-коде для отправки файлов в эту локальную общую папку с ПК. Я не знаю, как проверить папку имя, введенное пользователем, существует на локальном компьютере.проверить общий путь доступен на ПК

Пожалуйста, помогите мне в этом.

Благодаря

ответ

0
 string testString = "C:\temp"; 

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

Я могу только предположить, что System.IO существует в компактной системе, и что она имеет функцию .Exists.

0

Вы должны использовать Wnet API от pocketpc и попробовать подключиться к общему ресурсу. Существует

а) нет буквы дисков на PocketPC

и

б) нет 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; 

Это похоже на ПК. Вы можете просмотреть удаленный хост или ввести 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. Поэтому вам не нужно указывать свой собственный p/invoke для вызова API WNet, который вам нужен.

см. Также http://msdn.microsoft.com/en-us/library/ms885813.aspx

Смежные вопросы