2009-12-22 2 views
1

이것은 아래의 현재 기능입니다. 이 도구는 SharePoint에서 문서 라이브러리의 폴더를 만드는 데 사용되지만 MOSS보다 쉬운 웹 dav 기능을 사용합니다.WebDav 폴더가 있는지 확인하는 방법은 무엇입니까?

폴더가 이미 존재하는지 확실하게 확인하는 방법을 찾아야합니다. 이제 try catch에 의존하고 있습니다. 그러나 이것은 모든 프로토콜 예외가 오류를 발생시키지 않으므로 안정적인 기능이 아닙니다. . 폴더가 존재하는 경우 web dav를 사용하여 확인할 수 있습니까?

private void createFolderUsingWebDav(string siteAddress, string listAddress, string folderName) 
     { 
      //Check Databox Folder Exists 
      string folderAddress = siteAddress + @"/" + listAddress + @"/" + folderName; 
      HttpWebResponse response; 
      try 
      { 
       HttpWebRequest request = (System.Net.HttpWebRequest)HttpWebRequest.Create(folderAddress); 
       request.Credentials = wsLists.Credentials; // CredentialCache.DefaultCredentials; 
       request.Method = "MKCOL"; 
       response = (System.Net.HttpWebResponse)request.GetResponse(); 
       response.Close(); 
      } 
      catch (WebException ex) 
      { 
       if (ex.Status != WebExceptionStatus.ProtocolError) 
       { 
        throw ex; 
       } 
      } 
     } 

는 기본적으로 나는이 제품이 여기에 달성 것의 풀어 버전을 원하는 다음 DAV : http://www.independentsoft.de/webdav/tutorial/exists.html

답변

3

URL에 PROPFIND를 수행하면 폴더가 없으면 404가 반환됩니다.

207는 않습니다 의미

PROPFIND /yourfolder HTTP/1.1 
Content-Type: application/xml 

<?xml version="1.0"?> 
<propfind xmlns="DAV:"> 
    <prop> 
     <resourcetype /> 
    </prop> 
</propfind> 

(404)는 자원이 존재하지 않는 의미 (단지 관련 헤더를 표시)이 같은 PROPFIND 모습 뭔가를 확인합니다.

+0

207, 217 아닙니다. RFC 4918을 참조하십시오. 폴더의 존재 여부 만 확인하려면 모든 속성이 아닌 DAV : resourcetype 속성 만 가져오고 싶을 수도 있습니다. 훨씬 더 비싸다). –

+0

thnx 그 편집을했습니다 – Evert

+0

어떻게 C#에서 이것을 실제로 구현할 수 있습니까? –

0

PROPFIND이 당신의 친구입니다 컬렉션에 대한 수집 자식 요소 : ResourceType에 속성 (http://greenbytes.de/tech/webdav/rfc4918.html#rfc.section.15.9)는 DAV 있습니다. DAV : allprop 또는 DAV : prop (모두 http://greenbytes.de/tech/webdav/rfc4918.html#rfc.section.9에 설명되어 있음)를 사용하여 PROPFIND를 사용하여 검색하십시오.

+0

예를 들어 설명해 주시겠습니까 ... 제 카메라가 상당히 빨리 구현해야합니다 ... 감사합니다 ... –

+0

프로토콜 예제는 RFC 4918, 섹션 9.1에 나와 있습니다. –

+0

그다지 도움이되지 않습니다 ... –

관련 문제