我需要查找目录中的所有文件和所有子文件夹。我省略了FtpWebRequest。这是我到目前为止所写的内容:
private string[] fileList () {
StringBuilder result = new StringBuilder();
WebResponse response = null;
FtpWebRequest reqFtp = null;
//makes request to ftp server
StreamReader reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
//reads everything in directory but does not open the subfolders
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
result.Remove(result.ToString().LastIndexOf('\n');
return result.ToString().Split('\n');
}
这显示了指定目录中的所有文件和文件夹。但是,我的问题是:如何读取此目录中每个子文件夹中的文件?
有没有办法检测到我已到达文件夹,以便我可以将路径保存为string []中的索引,并继续阅读,直到没有更多文件夹?
我的目的是覆盖我本地计算机上的每个文件,并找到从Ftp服务器读取的文件。
答案 0 :(得分:1)
获得文件和/或目录列表后,您必须执行新的ftp请求以获取该列表中的项目。例如,如果,我请求dir的内容并获取文件列表,那么您将需要循环遍历该列表,请求每个文件。然后在循环内部覆盖您的本地副本。您基本上可以处理它,就像您本地文件只使用ftp请求并读取您通常打开文件并读取流的流。
此问题显示如何递归获取当前目录和子目录中的所有文件。 How to recursively list all the files in a directory in C#?
如果您在同一个域中,则可以将UNC路径与正常的目录/文件对象一起使用,并完全放弃ftp请求。