Hallo,
es wäre vielleicht hilfreich, wenn du den betreffenden Dateinamen angeben würdest (vorausgesetzt natürlich, das Problem tritt immer an derselben Stelle auf): Ist es ein besonderer Name, sind die Lese- und Schreibrechte in diesem Verzeichnis eingeschränkt oder ...?
Mir fallen folgende Punkte auf:
C#-Quelltext
1: 2: 3:
| if (0 != (File.GetAttributes(strInhalt[i]) & FileAttributes.Directory)) if ((File.GetAttributes(strInhalt[i]) & FileAttributes.Directory) == FileAttributes.Directory) |
FileInfo ist überflüssig; das erzeugt nur kurzfristig ein Objekt. Direkter geht es so:
C#-Quelltext
1:
| ExcelStreamWriter.WriteLine(";" + Path.GetFileName(strInhalt[i]) + ";"); |
ToString ist nur dann nötig, wenn das Objekt kein String ist. Hier es überflüssig:
C#-Quelltext
1: 2: 3:
| SchreibeInExcel(strInhalt[i].ToString()); SchreibeInExcel(strInhalt[i]); |
Vielleicht ist auch der ExcelStreamWriter schuld; wie der arbeitet, ist nicht ersichtlich. Eine csv-Datei ist doch eine einfache Textdatei; da würde ich sowieso mit
File.AppendAllText arbeiten. Sauberer ist eigentlich sogar noch, alle Teile im Arbeitsspeicher zusammenzutragen (per StringBuilder oder List<string>) und am Schluss insgesamt abzuspeichern.
Übrigens gibt es die Code-Markierung speziell für C#.
Jürgen