NLST 响应中的 FileZilla 服务器 returns 文件夹名称
FileZilla server returns folder name in NLST response
我编写了一些连接到 FTP 服务器的代码。
我的问题是我在某些服务器上同时获得了文件夹和文件名,例如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);
}
我宁愿只得到 myfile.txt
,因为真正的代码应该是这样 运行,但我不知道这是 FileZilla 设置还是其他设置。
ListDirectory
方法的 URL 通常应以斜线结尾。
如果没有斜线,结果往往不确定,主要取决于 FTP 服务器实施。
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/myfolder/");
如果 URL 类似于 ftp://ftp.example.com/parent/folder
,没有斜线,FtpWebRequest
会:
CWD /parent
NLST folder
在这种情况下,一些 FTP 服务器在列表中包含 folder
,而有些则没有。
虽然带有斜线,但 FtpWebRequest
会:
CWD /parent/folder
NLST
在这种情况下,列表包含裸文件名。
我编写了一些连接到 FTP 服务器的代码。
我的问题是我在某些服务器上同时获得了文件夹和文件名,例如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);
}
我宁愿只得到 myfile.txt
,因为真正的代码应该是这样 运行,但我不知道这是 FileZilla 设置还是其他设置。
ListDirectory
方法的 URL 通常应以斜线结尾。
如果没有斜线,结果往往不确定,主要取决于 FTP 服务器实施。
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/myfolder/");
如果 URL 类似于 ftp://ftp.example.com/parent/folder
,没有斜线,FtpWebRequest
会:
CWD /parent
NLST folder
在这种情况下,一些 FTP 服务器在列表中包含 folder
,而有些则没有。
虽然带有斜线,但 FtpWebRequest
会:
CWD /parent/folder
NLST
在这种情况下,列表包含裸文件名。