读取目录c#streamreader中子文件夹中的文件

时间:2013-04-24 17:57:06

标签: c# stringbuilder ftpwebrequest webresponse

我需要查找目录中的所有文件和所有子文件夹。我省略了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服务器读取的文件。

1 个答案:

答案 0 :(得分:1)

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

此问题显示如何递归获取当前目录和子目录中的所有文件。 How to recursively list all the files in a directory in C#?

如果您在同一个域中,则可以将UNC路径与正常的目录/文件对象一起使用,并完全放弃ftp请求。