我需要编写一个完整下载服务器上给定目录的例程 - 其中的所有文件和目录。
现在我有一个列出目录内容的例程
public List<string> GetListOfFiles(string serverPath)
{
List<string> files = new List<string>();
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + serverPath);
request.Credentials = new NetworkCredential(_domain + "\\" + _username, _password);
request.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
while (line != null)
{
files.Add(line);
line = reader.ReadLine();
}
response.Close();
}
catch (WebException ex)
{
FtpWebResponse response = (FtpWebResponse)ex.Response;
string exMsg = string.Empty;
switch (response.StatusCode)
{
case FtpStatusCode.NotLoggedIn:
exMsg = "wrong username/password";
break;
default:
exMsg = "The server is inaccessible or taking too long to respond.";
break;
}
throw new Exception(exMsg);
}
return files;
}
问题是我得到了文件和目录列表......所以像
file1.dll
file2.dll
dir1Name
有没有办法在列出时区分文件名和目录名?像一面旗帜?
答案 0 :(得分:1)
不幸的是,返回的信息实际上是FTP服务器的功能,而不是框架。
您可以ListDirectoryDetails
代替ListDirectory
,它应该为您提供更详细的信息(包括每个文件是目录还是文件),但也需要特殊的解析,作为其格式,取决于FTP服务器。