2009-08-12 1 views
1

SharePointサイトのURLを受け取り、そのURLがファイル(文書)?たとえば、SharePoint URLのリストがあり、ドキュメントライブラリやリストではなく、どのURLがファイルを指しているかを調べる必要があります。SharePointのURLがファイルであるかどうかを調べる - MOSSの既定のWebサービス

+1

@Stranger:あなたの質問はおそらくよくタグ付けされていないので見られませんでした。すべてのSharePoint質問に 'sharepoint'が付いていることを確認してください。また、コメントを回答として残さないでください。あなたの質問を編集して、それをアクティブリストの一番上にバンプしてください。 –

答えて

0

私は真剣にpropfind(webdav)に行くと考えています。私はファイルやドキュメントのライブラリやリストをチェックする方法について正確な答えを与えることはできませんが、あなたが実装するかもしれない何かの基礎となる機能を投稿することができます...

/// <summary> 
     /// Checks if MOSS resource exists. 
     /// </summary> 
     /// <param name="url"> 
     /// The url to the resource. 
     /// </param> 
     /// <returns> 
     /// True or false. 
     /// </returns> 
     /// <exception cref="Exception"> 
     /// </exception> 
     private bool MossResourceExists(string url) 
     { 
      // Create the web request object 
      var oReq = (HttpWebRequest) WebRequest.Create(url); 

      // Set the needed properties 
      oReq.Method = "PROPFIND"; 
      oReq.Credentials = wsLists.Credentials; // Use same credentials as wsLists. 
      oReq.AllowAutoRedirect = true; 
      oReq.UserAgent = "Microsoft-WebDAV-MiniRedir/6.1.7600"; 

      try 
      { 
       // Enumerate through top level only, increasing the depth will find children. 
       oReq.Headers["Depth"] = "0"; 
       oReq.Headers["translate"] = "f"; 
       var oRequest = new StreamWriter(oReq.GetRequestStream()); 
       oRequest.WriteLine(); 
       oRequest.Close(); 
       oReq.GetResponse(); 
       ////done with the webclient stuff, check the results 

       //var oMyDoc = new XmlDocument(); 
       //oMyDoc.LoadXml(sResponse); 
       //var oNsMgr = new XmlNamespaceManager(oMyDoc.NameTable); 
       //oNsMgr.AddNamespace("D", "DAV:"); 

       //XmlNodeList oAllResponses = oMyDoc.SelectNodes(".//D:multistatus/D:response", oNsMgr); 

       //foreach (XmlNode oNode in oAllResponses) 
       //{ 
       // if() 
       // string oNodeURL = oNode.SelectSingleNode("./D:href", oNsMgr).InnerText.ToLower() 
       // Console.WriteLine("Name: " + 
       //      oNode.SelectSingleNode("./D:propstat/D:prop/D:displayname", 
       //      oNsMgr).InnerText); 

       // if (oNode.SelectNodes("./D:propstat/D:prop/D:isFolder", oNsMgr).Count > 0) 
       // { 
       //  Console.WriteLine("Is folder: " + 
       //    oNode.SelectSingleNode("./D:propstat/D:prop/D:isFolder", 
       //    oNsMgr).InnerText); 
       // } 
       // else 
       // { 
       //  Console.WriteLine("Is folder: f"); 
       // } 
       // Console.WriteLine(); 
       //} 
      } 
      catch (WebException ex) 
      { 
       var errorResponse = ex.Response as HttpWebResponse; 

       if (errorResponse != null) 
        if (errorResponse.StatusCode == HttpStatusCode.NotFound) 
        { 
         return false; 
        } 
        else 
        { 
         throw new Exception("Error checking if URL exists:" + url + ";Status Code:" + 
              errorResponse.StatusCode + ";Error Message:" + ex.Message); 
        } 
      } 
      return true; 
}