我已经制作了一些连接到FTP服务器的代码。
我的问题是,我对某些服务器同时获取文件夹和文件名,例如def updateXMLTag (tag, value):
xmlValue = root.xpath(tag)
xmlValue[0].text = str(value)
,其他人只需获得myfolder\myfile.txt
。
myfile.txt
我希望我得到var request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/myfolder");
request.Method = WebRequestMethods.Ftp.ListDirectory;
var ftpResponse = (FtpWebResponse) request.GetResponse();
var ftpResponeStream = ftpResponse.GetResponseStream();
var ftpStreamReader = new StreamReader(ftpResponeStream);
string line;
while ((line = ftpStreamReader.ReadLine()) != null)
{
Console.WriteLine(line);
}
,因为这是真正的代码应该运行的方式,但我不知道,如果这是一个FileZilla设置或其他。
答案 0 :(得分:1)
ListDirectory
方法的网址通常应以斜杠结尾。
没有斜杠,结果往往不确定,主要取决于FTP服务器实现。
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/myfolder/");
使用ftp://ftp.example.com/parent/folder
之类的网址,没有斜杠,FtpWebRequest
会:
CWD /parent
NLST folder
在这种情况下,某些FTP服务器在列表中包含folder
,而有些则没有。
使用斜杠时,FtpWebRequest
会执行:
CWD /parent/folder
NLST
在这种情况下,列表包含裸文件名。