我需要找到一个目录中的所有文件和所有子文件夹。我省略了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');
}
显示指定目录下的所有文件和文件夹。但是,我的问题是:如何读取该目录下每个子文件夹中的文件?
是否有一种方法可以检测到我已经到达一个文件夹,以便我可以将路径保存为字符串[]中的索引,并继续阅读,直到没有更多的文件夹?
我的目的是用从Ftp服务器读取的文件覆盖我本地机器上的每个文件。
有了文件和/或目录的列表后,您将不得不执行一个新的ftp请求来获取该列表中的项目。例如,如果我请求一个目录的内容并获得一个文件列表,那么您将需要遍历该列表,为每个文件发出请求。然后在循环中覆盖本地副本。你基本上会像处理本地文件一样处理它,只使用ftp请求并读取流,而你通常会打开文件并读取流。
这个问题展示了如何递归地获取当前目录和子目录中的所有文件。如何在c#中递归列出目录中的所有文件?
如果您在同一域,您可以使用UNC路径与正常的dir/file对象,并完全放弃ftp请求