Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 列出远程web服务器(http)上的文件和文件夹_.net - Fatal编程技术网

.net 列出远程web服务器(http)上的文件和文件夹

.net 列出远程web服务器(http)上的文件和文件夹,.net,.net,我想列出远程服务器(HTTP)上的文件。请告诉我控制台应用程序的可能选项 如果您的http服务器使用webdav,则操作简单。下面是一些示例代码: 请注意,您必须在项目中包含对MSXML2 Com对象的引用 public static void PrintDirectoryContents(string url, bool deep) { var xmlHttp_ = new XMLHTTP(); // Build the query. string requestSt

我想列出远程服务器(HTTP)上的文件。请告诉我控制台应用程序的可能选项

如果您的http服务器使用webdav,则操作简单。下面是一些示例代码: 请注意,您必须在项目中包含对MSXML2 Com对象的引用

public static void PrintDirectoryContents(string url, bool deep) {
    var xmlHttp_ = new XMLHTTP();

    // Build the query.
    string requestString = 
        "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" +
        "<a:propfind xmlns:a=\"DAV:\">" +
        "<a:prop>" +
        "<a:displayname/>" +
        "<a:iscollection/>" +
        "<a:getlastmodified/>" +
        "</a:prop>" +
            "</a:propfind>";

        // Open a connection to the server.
        xmlHttp_.open("PROPFIND", url, false, "youruser", "yourpassword");

        // Send the request.
        xmlHttp_.setRequestHeader("PROPFIND", requestString);
        xmlHttp_.send(null);

        // Get the response.
        string folderList = xmlHttp_.responseText;

        // Parse the folder list.
     XmlDocument XmlDoc = new XmlDocument();
        var xml = folderList;
        XmlDoc.LoadXml(xml);

        //HERE you can read the xmldocument for the 
        //properties of the files you need  
}
publicstaticvoid-PrintDirectoryContents(字符串url,bool-deep){
var xmlHttp_=新的xmlHttp();
//构建查询。
字符串请求字符串=
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"";
//打开与服务器的连接。
xmlHttp_u2;.open(“PROPFIND”,url,false,“youruser”,“yourpassword”);
//发送请求。
setRequestHeader(“PROPFIND”,requestString);
xmlHttp_u2;u.send(空);
//得到回应。
字符串folderList=xmlHttp_u2;.responseText;
//解析文件夹列表。
XmlDocument XmlDoc=新的XmlDocument();
var xml=folderList;
LoadXml(xml);
//在这里,您可以阅读XML文档中的
//所需文件的属性
}
您可以使用该类调用服务器、读取文件/目录列表并递归浏览目录

以下是WebClient的基本用法:

WebClient client = new WebClient ();
Stream data = client.OpenRead ("http://example.com");
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd ();

// At this point, the variable s contains the returned webpage

另一个可能更合适的选项是使用-您可以使用
WebHtml
对象直接从web检索HTML,然后使用
XPath
语法查询它。

Vbscript列出webdav文件夹(仅文件,非递归)

Const UploadUser=“loginForWebDav”'
Const UploadPass=“passwordForWebDav”'
strURL=”https://login.webdav.hidrive.strato.com/users/login/"
iterate2ndArray(webDavListOnlyFiles(strURL))'返回2D数组第一个数组是索引,第二个文件名,日期
函数webDavListOnlyFiles(strURL)'带尾随斜杠'返回obj或数组?
设置XMLreq=createobject(“MSXML2.XMLHTTP.3.0”)
SSourcurl=反斜杠2斜杠(strURL)
XMLreq.open“PROPFIND”,sSourceURL,False,“UploadUser”,“UploadPass”
XMLreq.setRequestHeader“内容类型”、“文本/xml”
XMLreq.setRequestHeader“深度”,1'цфззззззззпофиг
'XMLreq.setRequestHeader“Translate”,“f”
“XMLreq.setRequestHeader”简短,“t”默认设置为“f”。
“XMLreq.send”
XMLreq.send“”
'WriteTextFilesStandalone XMLreq.responseText,“C:\shkur\tmpCopy\xml.xml”
'MsgBox XMLreq.responseXML.getElementsByTagName(“D:状态”).nextNode.Text'HTTP/1.1 200 OK'
设置objNodeList1=XMLreq.responseXML.getElementsByTagName(“D:href”)
设置objNodeList2=XMLreq.responseXML.getElementsByTagName(“lp1:creationdate”)
第1次会议()
“dim arr2nd()”是指
''Set arr1st=CreateObject(“Scripting.Dictionary”)
x=0
对于i=0到(objNodeList1.length-1)
''Set arr2nd=CreateObject(“Scripting.Dictionary”)
设置objNode1=objNodeList1.nextNode
设置objNode2=objNodeList2.nextNode
如果(右(objNode1.text,1))“/”则“尾部斜杠=文件夹”
flnm=(mid(objNode1.text,(InStrRev(objNode1.text,“/”))+1))
creationdate=CDate(替换(替换(objNode2.text,“T”,“”),“Z”,“”)
'msg=msg&x&'&flnm&'&objNode2.text&'&Vbcrlf
“”arr2nd.Add“flnm”,flnm
“”arr2nd.Add“creationdate”,objNode2.text
arr2nd=阵列(flnm,创建日期)
第1(x)条雷迪姆保留区
arr1st(x)=arr2nd
x=x+1
“”arr1st.Add x,arr2nd
如果结束
设置arr2nd=无
下一个
'MsgBox msg
设置XMLreq=Nothing
webDavListOnlyFiles=arr1st
'iterate2ndArray(arr1st)
“msgbox isarray(arr1st)
'msgbox isarray(arr1st(0))
“设置arr1st=Nothing”或“Nothing”。。。
端函数
函数反斜杠2斜杠(strUrl)
'поменять бекслеши на слеши и добавить слеш вконце
'msgbox反斜杠2斜杠('https://www.w3school///s.com/\\\\\vbscript/func_instr.asp“)
左侧=(左侧(strUrl,(InStr(strUrl,“:/”))+2)
右侧=(右侧(strUrl,(Len(strUrl)-InStr(strUrl,“:/”)-2))
右侧=替换(替换(替换(右侧“\”、“/”、“/”、“/”、“/”、“/”、“/”、“/”、“/”、“/”、“/”)
concat=左侧和右侧
如果(右(concat,1))“/”则
反斜杠2slash=concat&“/”
其他的
反斜杠2斜杠=concat
如果结束
端函数
函数迭代数组(a)
如果isArray(a)=false,则
msgbox“эаааааааа”
其他的
msg=“begin:”&vbcrlf
对于a中的每个x
'msg=msg&“第一个数组:”&x
对于x中的每个xx
msg=msg&&&xx
'msgbox xx
下一个
msg=msg&vbcrlf
下一个
msgbox味精
如果结束
端函数

您的问题中缺少重要信息,例如-您是否控制远程服务器?您通常可以从中获取文件列表吗?服务器是否允许目录列表?这将很重要。我部分地控制着远程服务器,文件列表被激活。谢谢是的,服务器允许目录列表。我的目的是列出所有文件夹和底层文件。可能重复[Use DirectoryInfo on web server]()确定。谢谢我也希望能提供另一个例子。提前谢谢。我想我喜欢webClient选项。非常感谢。会给它一个机会。VBScript不是