了解SharePoint URL是否为文件-MOSS开箱即用web服务

了解SharePoint URL是否为文件-MOSS开箱即用web服务,sharepoint,moss,Sharepoint,Moss,有没有现成的MOSS web服务,它获取SharePoint网站的URL并告诉我们该URL是否指向文件(文档)?例如,我们有一个SharePoint URL的列表,我们需要找出哪些URL指向一个文件,而不是一个文档库或一个列表? < P>我会认真考虑使用PROFSET(WebDAV)。关于如何检查文件或文档库或列表,我不能给你一个确切的答案,但我可以发布一个函数,作为你可能实现的东西的基础。。。在这里 /// <summary> /// Checks if MOSS

有没有现成的MOSS web服务,它获取SharePoint网站的URL并告诉我们该URL是否指向文件(文档)?例如,我们有一个SharePoint URL的列表,我们需要找出哪些URL指向一个文件,而不是一个文档库或一个列表?

< P>我会认真考虑使用PROFSET(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;
}
//
///检查MOSS资源是否存在。
/// 
/// 
///指向资源的url。
/// 
/// 
///对或错。
/// 
/// 
/// 
私有布尔存在(字符串url)
{
//创建web请求对象
var oReq=(HttpWebRequest)WebRequest.Create(url);
//设置所需的属性
oReq.Method=“PROPFIND”;
oReq.Credentials=wslist.Credentials;//使用与wslist相同的凭据。
oReq.AllowAutoRedirect=true;
oReq.UserAgent=“Microsoft WebDAV MiniRedir/6.1.7600”;
尝试
{
//仅通过顶层枚举,增加深度将找到子级。
oReq.Headers[“Depth”]=“0”;
oReq.Headers[“translate”]=“f”;
var oRequest=newstreamwriter(oReq.GetRequestStream());
oRequest.WriteLine();
oRequest.Close();
oReq.GetResponse();
////完成webclient的工作后,检查结果
//var myydoc=新的XmlDocument();
//oMyDoc.LoadXml(sResponse);
//var oNsMgr=新的XmlNamespaceManager(myDoc.NameTable);
//oNsMgr.AddNamespace(“D”,“DAV:”);
//XmlNodeList oAllResponses=myydoc.SelectNodes(“../D:multistats/D:response”,oNsMgr);
//foreach(oAllResponses中的XmlNode-oNode)
//{
//如果()
//字符串oNodeURL=oNode.SelectSingleNode(“./D:href”,oNsMgr.InnerText.ToLower()
//Console.WriteLine(“名称:”+
//oNode.SelectSingleNode(“./D:propstat/D:prop/D:displayname”,
//oNsMgr.InnerText);
//if(oNode.SelectNodes(“./D:propstat/D:prop/D:isFolder”,oNsMgr.Count>0)
//    {
//Console.WriteLine(“是文件夹:”+
//oNode.SelectSingleNode(“./D:propstat/D:prop/D:isFolder”,
//oNsMgr.InnerText);
//    }
//否则
//    {
//Console.WriteLine(“Is文件夹:f”);
//    }
//Console.WriteLine();
//}
}
捕获(WebException ex)
{
var errorResponse=例如作为HttpWebResponse的响应;
if(errorResponse!=null)
if(errorResponse.StatusCode==HttpStatusCode.NotFound)
{
返回false;
}
其他的
{
抛出新异常(“检查URL是否存在时出错:+URL+”,状态代码:”+
errorResponse.StatusCode+“错误消息:”+ex.Message);
}
}
返回true;
}

@陌生人:你的问题可能没有被看到,因为它没有很好地标记。请确保所有SharePoint问题都标记有
SharePoint
。另外,请不要留下评论作为答案。编辑您的问题,将其添加到活动列表的顶部。