Autor Beitrag
shil
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 143

Windows Xp
C#
BeitragVerfasst: Mo 29.01.07 10:18 
...nis löschen

Hallo,
kann mir wer einen tip geben wie ich die dateinamen von dateien in einem bestimmten verzeichnis mir holen kann.
desweiteren würde ich gerne alle dateien in einem verzeichnis löschen, gibt es dafür eine spezielle möglichkeit?


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mo 29.01.2007 um 10:01
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 29.01.07 10:58 
Siehe :
Directory.GetFiles
und zum Löschen in einer Schleife:
File.Delete oder FileInfo.Delete

Oder Du löscht das ganze Verzeichnis:
Directory.Delete(<DeinPfad>,<MitUnterverzeichnissen>)
Ich bin mir aber nicht sicher, ob das Verzeichnis gelöscht werden kann, wenn Dateien enthalten sind.
shil Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 143

Windows Xp
C#
BeitragVerfasst: Do 01.02.07 12:53 
ok, nu ne erweiterte frage.

ich habe schon man was geschrieben

ausblenden C#-Quelltext
1:
2:
 
Directory.Delete(Path, true);


es löscht mir das verzeichns auch wenn dateien enthalten sind.
nur wenn ich jetzt eine schreibgeschüzte datei in dem verzeichnis habe wird eine ausnahme ausgelöst. ich will aber das er auch diese datei löscht. wie kann ich das am besten anstellen?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 01.02.07 13:06 
Zwei Varianten:
1. Du nimmst Directory.GetFiles und prüfst die Attribute aller Dateien. Falls ein störendes Attribut vorliegt, musst Du das neu setzen. Geht vermutlich mit "File" oder "FileInfo". Danach löscht Du das Verzeichnis.
2. Du löscht die Dateien einzeln. Natürlich auch mit Attribut-Prüfung oder Exception-Handling. Auch hier zum Schluß das Verzeichnis löschen.

In beiden Fällen musst Du rekursiv arbeiten, damit Du auch die Dateien der Unterverzeichnisse abarbeitest.

Allerdings könnte ich mir vorstellen, dass es einen Grund gibt, dass eine Datei R/O ist. Vielleicht soll/darf sie nicht gelöscht werden?
shil Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 143

Windows Xp
C#
BeitragVerfasst: Do 01.02.07 13:09 
nein, das ist eine vorraus setzung an das programm, das sie genau dieses vrzeichnis löscht, egal was da drin ist.

aber noch mal zu meiner frage.
ich versteh nur bahnhof was du meinst. :<
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 01.02.07 14:43 
Ich nehme mal an, dass Dir Rekursion ein Begriff ist. Also komme ich gleich zu den anderen Punkten.

Mit Directory.GetFiles kannst Du die Dateien eines Verzeichnisses (eine Überladung kann auch Unterverzeichnisse durchsuchen) bekommen. Der Rückgabewert ist ein String-Array.
Durch dieses String-Array läufst Du dann in einer foreach-Schleife durch.
In dieser Schleife prüfst Du dann die Attribute der Dateien. Dafür gibt es File.GetAttributes. Solltest eine Datei ein Attribut haben, dass das Löschen verhindert (z.B. ReadOnly) kannst Du die Attribute mit File.SetAttributes neu setzen. Die Attribute findest Du unter der FileAttributes-Enumeration.

Wenn Du bei GetFiles die Überladung mit den SearchOptions verwendest, musst Du nichtmal rekursiv programmieren.

Ich finde das nicht sonderlich kompliziert. Aber vielleicht ist mein Programmierergehir auch schon zu verkorkst. :wink:
shil Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 143

Windows Xp
C#
BeitragVerfasst: Do 01.02.07 16:11 
thx, aber hat sich alles erledigt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 01.02.07 16:13 
Dann sage bitte auch, wie sich das erledigt hat, damit alle was davon haben!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".