前面已经介绍了很多关于FTP对文件的操作,今天再跟大家介绍一个获取文件列表的功能。这个功能应该算是最简单的一个了,它只是获取了一下文件信息,而没有进行实质上的数据传输。


下面是是该功能的核心代码:

/// <summary>
/// 获取文件列表
/// </summary>
/// <param name="ftpServerIP">服务器地址</param>
/// <param name="ftpUserID">FTP用户名</param>
/// <param name="ftpPassword">FTP密码</param>
/// <returns></returns>
public string[] GetFileList(string ftpServerIP, string ftpUserID, string ftpPassword)
{
string[] downloadFiles;
StringBuilder result = new StringBuilder();
FtpWebRequest reqFTP;
try
{
// 根据uri创建FtpWebRequest对象
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpServerIP));


// 指定数据传输类型
reqFTP.UseBinary = true;


// ftp用户名和密码
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);


// 指定执行什么命令
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
WebResponse response = reqFTP.GetResponse();


//获取文件流
StreamReader reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();


//如果有文件就将文件名添加到文件列表
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}


result.Remove(result.ToString().LastIndexOf('\n'), 1);


//关闭流
reader.Close();
response.Close();
return result.ToString().Split('\n');
}
catch (Exception ex)
{
downloadFiles = null;
return downloadFiles;
}
}


关于FTP的文章写了好几篇了,C#的FTP基本操作写得都差不多了。这篇博客应该是最后一篇关于C#+FTP的文章了。新的学习已经开始有一段时间了,.Net的博客也该告一段落了,以后更多的是Java方面的博客了。希望大家继续关注。