Abraham Narh
Abraham Narh

Reputation: 75

write the list of files in a folder to afile

I wrote a code to read all the files in a folder, then write them to a file. All the code complies and runs okay, but the filenames of the files are not displayed in the new file.

Code:

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();
}

I would be grateful for your assistance.

Upvotes: 1

Views: 1885

Answers (6)

user10827785
user10827785

Reputation: 1

Try this :

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);
    }
}

Upvotes: 0

Md Kamruzzaman Sarker
Md Kamruzzaman Sarker

Reputation: 2407

I think problem is with your file path or file writing capability.

You use folderbrowserdialog but do not use it to get selected file name. Instead you give path manually. also your output path can have problem.

Upvotes: 0

basti
basti

Reputation: 2689

I would say that your "space" in your folderpath is messing things up. Try to escape the "whitespace" by following the explanations in the msdn

Upvotes: 0

Martheen
Martheen

Reputation: 5634

You took the trouble to ask the user the folder location, yet you don't retrieve that folder location. The code should be

    string[] array1 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.csv");

    // Display all files.
    TextWriter tw1 = new StreamWriter(folderBrowserDialog1.SelectedPath+"/listoffiles.txt");

Upvotes: 1

Rob P.
Rob P.

Reputation: 15091

Set a breakpoint to verify that GetFiles is returning files.

(Consider renaming array1 to something more meaningful)

Set a breakpoint on tw1.WriteLine(name) and ensure it is being hit.

It should be pretty easy to see the problem. My guess is that you simply aren't getting any files returned from GetFiles, but the breakpoints will tell you for sure. If your output file is created but missing the files - this is most likely the case.

If your output file doesn't exist; take a closer look at your file writing code.

Upvotes: 0

nyxthulhu
nyxthulhu

Reputation: 9762

If the file isn't created (ie its just not there, even if it's just blank) then you problem lies with the stream writer. If this is the case I would suggest changing the direction of slashes so that your path is

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

If the file is created but nothing is written have a look at the flush command.

tw1.Flush();

Upvotes: 0

Related Questions