2014-09-07 1 views
0

나는 .net Compact Framework 3.5에서 작업 중입니다. pocket pc에서 작동하는 응용 프로그램을 개발 중입니다. Pocket PC 장치는 로컬 PC에 연결해야합니다. 사용자가 로컬 PC에 공유 폴더를 만들 수 있으며 pocket pc에서 공유 폴더로 파일을 보낼 수 있습니다. 사용자에게 공유 폴더 경로를 입력하라는 메시지가 나타나면 폴더 형식은 (\ Shared-PC-Name \ FolderName). 사용자가 입력 한 공유 폴더 경로가 로컬 PC 공유 폴더에 파일을 보내려면 로컬 PC.I 코드에 존재하는지 확인해야합니다. 폴더를 확인하는 방법을 모르겠습니다. 사용자가 입력 한 이름이 로컬 PC에 존재합니다.체크 공유 경로는 PC에서 사용할 수 있습니다

도와주세요.

감사

답변

0
 string testString = "C:\temp"; 

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

난 단지 System.IO 컴팩트 프레임 워크 내에서 존재한다고 가정 할 수는 .Exists 기능을 가지고있다.

0

pocketpc의 Wnet API를 사용하고 공유 리소스에 대한 연결을 시도해야합니다.

가) 포켓

b)는 어떤 API에는 드라이브 문자가 공유의 존재를 확인하지 할 수 있습니다.

, 당신은 LPNETRESOURCE의 존재와

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

을 사용하여 연결을 시도합니다 :

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

관련 문제