Visual C# Pfad angeben zum Löschen etc / Allgemein

Hey meine eigentliche Frage steht oben, aber ich wollte für einen Freund nen Programm coden was ihm dabei hilft Ordner zu löschen ( Hat nen tieferen hintergrund ) Und dazu würde ich gern wissen wie ich es mache das, dass Programm alles auf der HDD löscht ausser bestimmte ordner.

die Win32/Win64 API calls/structs

typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME;

typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[MAX_PATH];
TCHAR cAlternateFileName[14];
} WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;

HANDLE WINAPI FindFirstFile(
_In_ LPCTSTR lpFileName,
_Out_ LPWIN32_FIND_DATA lpFindFileData
);

BOOL WINAPI FindNextFile(
_In_ HANDLE hFindFile,
_Out_ LPWIN32_FIND_DATA lpFindFileData
);

BOOL WINAPI FindClose(
_Inout_ HANDLE hFindFile
);

sowie

BOOL WINAPI DeleteFile(
_In_ LPCTSTR lpFileName
);

BOOL WINAPI RemoveDirectory(
_In_ LPCTSTR lpPathName
);

was nicht gelöscht werden soll, musst Du natürlich in der Logik des Programms berücksichtigen, sonst ist alles weg :wink:

Hallo,

tut mir leid, weiß ich nicht.
Die Unterstützung von internen Befehlen ist meistens nicht sehr gut und man muss sich selbst was stricken.

Gruß

Hermann

Generell ginge das ohne Programmieren sehr leicht…

http://stackoverflow.com/questions/7503194/batch-fil…

Wenn du aber ein Programm schreiben möchtest…
Mach Dir deine List der Ordner die nicht gelöscht werden sollen.
Erzeug Dir eine List aller Ordner die es gibt.
Lösche aus der zweiten Liste alles, das in der ersten Liste steht (evtl. inkl der Unterordnerangaben und Übergeordneter Ordner - zwei .StartsWith()-Vergleiche genügen), dann hast du eine List der Ordner, die du löschen möchtest.
Jetzt könntest du noch für jeden Ordner die Unterordner wieder aus der Liste nehmen, wenn du möchtest…
Oder einfach die Liste von hinten nach vorne durchgehen und jeden Ordner nicht rekursiv löschen.
Directory.Delete(„Verzeichnisname“) macht das ja im standard so.

Viel Erfolg…
Grüße,
Thomas

Hallo Nexis069,

möchtestdu deinem Freund eine Benutzeroberfläche
mit Navigation durch die Ordnerstruktur zur Verfügung stellen, vergelichbar dem Windows Explorer?

Wo befinden sich die Ordner, evtl. auf einem Server?
Bedenke, dass nicht jeder Ordner bedenkenlos gelöscht
werden kann.

Um dir einen Vorschlag machen zu können, fehlt eine
genauere Beschreibung deines Projektes.

Grüße,
Steffen

Hallo Nexis,
für C# bin ich der falsche Anspechpartner.
Aber zu diesem Problem:

Und dazu würde ich gern wissen wie ich es mache das,
dass Programm alles auf der
HDD löscht ausser bestimmte ordner.

Wie wäre es mit eine .ini-Datei in der Du per Editor oder Programm die zu verschonenden Verzeichnisse hinterlegst?

Ich programmiere zwar kein C#, aber eine kurze Internetsuche ergab folgenden Treffer, der aussieht, als würde er Deine Frage beantworten:

C# delete a folder and all files and folders within …

Hallole

habe mich nie mit C# beschäftigt - sorry.

MfG
G. Aust

Hallo,

die Dateizugriffe sind im .net Framework im System.IO in den Klassen File bzw. Directory.

Offen gestanden würde ich das nicht mit C# sondern eher mit einem Batch File oder PowerShell machen.

Viel Erfolg.

Gerhard

Tante google meinte folgendes:

http://dotnet-snippets.de/snippet/dateien-und-ordner…

und

http://dotnet-snippets.de/snippet/dateien-und-ordner…

Genauer geht’s nicht, da auch die Frage etwas unscharf formuliert ist…

Gruß