0

我需要在一个目录中找到所有文件和所有子文件夹。我省略了 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 服务器读取的文件覆盖我本地机器上的每个文件。

4

1 回答 1

1

获得文件和/或目录列表后,您必须执行新的 ftp 请求才能获取该列表中的项目。例如,如果我请求目录的内容并获取文件列表,那么您将需要遍历该列表以请求每个文件。然后在循环内覆盖您的本地副本。您基本上会像处理本地文件一样处理它,仅使用 ftp 请求并读取您通常打开文件并读取流的流。

这个问题展示了如何递归地获取当前目录和子目录中的所有文件。 如何递归列出C#目录中的所有文件?

如果您在同一个域中,则可以将 UNC 路径与普通 dir/file 对象一起使用,并完全放弃 ftp 请求。

于 2013-04-24T18:09:36.487 回答