将文件夹中的文件列表写入 Afile

本文关键字:Afile 列表 文件 文件夹 | 更新日期: 2023-09-27 18:37:23

我写了一个代码来读取文件夹中的所有文件,然后将它们写入文件。所有代码都符合并运行正常,但文件的文件名不会显示在新文件中。

法典:

private void Form1_Load(object sender, EventArgs e)
{
    DialogResult result = folderBrowserDialog1.ShowDialog(); // Show the dialog.
    // create a list to insert the data into
    //put all the files in the root directory into array
    string[] array1 = Directory.GetFiles(@"C:'Users'a3708906'Documents'Filereader m 15062012", "*.csv");
    // Display all files.
    TextWriter tw1 = new StreamWriter("C:/Users/a3708906/Documents/Filereader m 15062012/Filereader m 15062012/listoffiles.txt");
    List<string> filenames = new List<string>();
    tw1.WriteLine("--- Files: ---");
    foreach (string name in array1)
    {
            tw1.WriteLine(name);
    }
    tw1.Close();
}
我将

不胜感激你的帮助。

将文件夹中的文件列表写入 Afile

您不厌其烦地询问用户文件夹位置,但未检索该文件夹位置。代码应该是

    string[] array1 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.csv");
    // Display all files.
    TextWriter tw1 = new StreamWriter(folderBrowserDialog1.SelectedPath+"/listoffiles.txt");

如果未创建文件(即它只是不存在,即使它只是空白),那么您的问题出在流编写器上。如果是这种情况,我建议更改斜杠的方向,以便您的路径

TextWriter tw1 = new StreamWriter("C:''Users''a370890''Documents''Filereader m 15062012''Filereader m 15062012''listoffiles.txt");

如果文件已创建,但未写入任何内容,请查看 flush 命令。

tw1.Flush();

设置断点以验证GetFiles是否返回文件。

(考虑将 array1 重命名为更有意义的名称)

tw1.WriteLine(name)上设置断点并确保命中断点。

应该很容易看出问题。 我的猜测是,您根本没有从GetFiles返回任何文件,但是断点肯定会告诉您。 如果您的输出文件已创建但缺少文件 - 很可能是这种情况。

如果您的输出文件不存在;请仔细查看您的文件编写代码。

我会说你的文件夹路径中的"空间"把事情搞砸了。尝试按照 msdn 中的说明转义"空格"

我认为问题出在您的文件路径或文件写入能力上。

您使用文件夹浏览器对话框,但不使用它来获取所选文件 名字。相反,您可以手动提供路径。您的输出路径也可以具有 问题。

试试这个:

using(system.IO.StreamWriter tw1 = 
      new system.IO.StreamWriter(@"C:/Users/a3708906/Documents/Filereader m 15062012/Filereader m 15062012/listoffiles.txt")
{
    foreach (string name in array1)
    {
        tw1.WriteLine(name);
    }
}