2016-03-24 14 views
-1

Ich möchte alle Namen der Dateien und ihre Größe und speichern Sie sie in einem Excel mit C#. Ich habe dies getan, aber das Problem ist, ich möchte zwei verschiedene Spalte: eine für Dateiname und eine für Dateigröße, aber meine Ausgabe wird in einer Spalte gespeichert.Get Dateigröße und Name in zwei verschiedenen Spalte mit C#

Der Code Ich verwende:

public void Main() 
{ 
    using (StreamWriter writer = new StreamWriter("D:\\MyFile\\output.csv")) 
    { 
     Console.SetOut(writer); 
     Act(); 
    } 
} 

static void Act() 
{ 
    Console.Write("FileName,".PadRight(20)); 
    Console.WriteLine("Size"); 
    DirectoryInfo di = new DirectoryInfo(@"D:\MyFile"); 
    // Get a reference to each file in that directory. 
    DataSet ds = new DataSet(); 
    FileInfo[] fiArr = di.GetFiles(); 
    // Display the names and sizes of the files. 
    //Console.WriteLine("The directory {0} contains the following files:", di.Name); 
    foreach (FileInfo f in fiArr) 
     Console.WriteLine("{0}, {1} ", f.Name.PadRight(20), f.Length.ToString()); 
} 

Wie ich dies in zwei Spalten aufteilen?

+0

Wie definieren Sie das Konzept "Spalten"? – Steve

+0

Sie scheinen richtig "," zwischen den beiden Elementen sowie "csv" -Datei. Was ist das Problem, das du hast? – Ian

+0

Es bedeutet, dass ich Filename in Spalte A und Dateigröße in Spalte B möchte. Aber in meinem Code werden Dateiname und Größe in Spalte A – SaNa3819

Antwort

0

Versuchen Sie, die Felder mit einem Tab zu trennen.

foreach (FileInfo f in fiArr) 
    Console.WriteLine("{0}\t {1} ", f.Name.PadRight(20), f.Length.ToString()); 

Viel Glück mein Freund.

+0

Es funktioniert nicht. – SaNa3819

+0

Haben Sie versucht, eine neue Leitung zu verwenden? 'Console.WriteLine (" {0} {1} {2} ", f.Name.PadRight (20)," \ n ", f.Length.ToString());' – AsafSavich

+0

Ja für eine neue Zeile geht es zu a neue Zeile, aber ich möchte die nächste Spalte – SaNa3819

Verwandte Themen