Compare commits

...

10 Commits

Author SHA1 Message Date
5efbb5c028 Kleine Änderungen 2024-10-11 23:48:58 +02:00
75a674b069 Kleine Änderungen 2024-10-11 23:46:43 +02:00
Eugen Höglinger
8e5fd3ae36 Kleine Korrektur 2024-10-09 09:26:06 +02:00
Hoeglinger Eugen
78ce0652b3 Änderung
- Variablen 'static' gesetzt
2022-04-19 10:33:09 +02:00
Hoeglinger Eugen
48970fa89b Änderung
- Klasse in 'static' geändert
2022-04-19 09:04:16 +02:00
Hoeglinger Eugen
877c0a5278 Änderung
- 'undeletableFiles' und 'undeletableDirectories' wird
   'UndeletableFiles' und 'UndeletableDirectories'
- 'UndeletableFiles' und 'UndeletableDirectories' werden statisch
2022-04-19 08:38:32 +02:00
Hoeglinger Eugen
3b2eff92a9 Änderung
- Methodenname von ClearUndeletableFolders auf
  ClearUndeletableDirectories geändert
2022-04-19 08:04:11 +02:00
Hoeglinger Eugen
6ec58cc8ea Neu dazu
- Funktionen: Liste der unlöschbaren Verzeichnisse und Dateien leeren
2022-04-19 07:58:52 +02:00
Hoeglinger Eugen
ad76dd0246 Änderung
- Beim rekursiven Löschen von Verzeichnissen, werden unlöschbare
   Verzeichnisse und Dateien in getrennten Listen ausgegeben.
2022-04-15 16:22:18 +02:00
5356231a8d Änderung
- Copyright-Generierung angepasst
2021-09-02 13:28:00 +02:00
39 changed files with 1027 additions and 819 deletions

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,88 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{E3AEAD97-B7B5-4DDE-92E6-06EBB0430676}|Test_DeleteFileFolder\\Test_DeleteFileFolder.csproj|d:\\eugen\\programmieren\\git-workrepository\\visualstudio\\_dll\\deletefilefolder.git\\test_deletefilefolder\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{E3AEAD97-B7B5-4DDE-92E6-06EBB0430676}|Test_DeleteFileFolder\\Test_DeleteFileFolder.csproj|solutionrelative:test_deletefilefolder\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{9E1E89BE-2500-4B00-8179-6FCED03F07C9}|DeleteFileFolder\\DeleteFileFolder.csproj|D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\deletefilefolder\\deletefilefolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9E1E89BE-2500-4B00-8179-6FCED03F07C9}|DeleteFileFolder\\DeleteFileFolder.csproj|solutionrelative:deletefilefolder\\deletefilefolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{E3AEAD97-B7B5-4DDE-92E6-06EBB0430676}|Test_DeleteFileFolder\\Test_DeleteFileFolder.csproj|D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\test_deletefilefolder\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{E3AEAD97-B7B5-4DDE-92E6-06EBB0430676}|Test_DeleteFileFolder\\Test_DeleteFileFolder.csproj|solutionrelative:test_deletefilefolder\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 4,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Form1.cs [Entwurf]",
"DocumentMoniker": "D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\Test_DeleteFileFolder\\Form1.cs",
"RelativeDocumentMoniker": "Test_DeleteFileFolder\\Form1.cs",
"ToolTip": "D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\Test_DeleteFileFolder\\Form1.cs [Entwurf]",
"RelativeToolTip": "Test_DeleteFileFolder\\Form1.cs [Entwurf]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-10-11T21:45:11.742Z",
"EditorCaption": " [Entwurf]"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "DeleteFileFolder.cs",
"DocumentMoniker": "D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\DeleteFileFolder\\DeleteFileFolder.cs",
"RelativeDocumentMoniker": "DeleteFileFolder\\DeleteFileFolder.cs",
"ToolTip": "D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\DeleteFileFolder\\DeleteFileFolder.cs",
"RelativeToolTip": "DeleteFileFolder\\DeleteFileFolder.cs",
"ViewState": "AQIAAIkAAAAAAAAAAAAcwNcAAAAKAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-10-11T21:45:11.894Z"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Form1.cs",
"DocumentMoniker": "D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\Test_DeleteFileFolder\\Form1.cs",
"RelativeDocumentMoniker": "Test_DeleteFileFolder\\Form1.cs",
"ToolTip": "D:\\Eugen\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DeleteFileFolder.git\\Test_DeleteFileFolder\\Form1.cs",
"RelativeToolTip": "Test_DeleteFileFolder\\Form1.cs",
"ViewState": "AQIAAA8AAAAAAAAAAAAgwPQAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003525|",
"WhenOpened": "2024-10-11T21:45:11.901Z"
}
]
}
]
}
]
}

View File

@ -0,0 +1,7 @@
{
"ExpandedNodes": [
""
],
"SelectedNode": "\\DeleteFileFolder.git.sln",
"PreviewInSolutionExplorer": false
}

BIN
.vs/slnx.sqlite Normal file

Binary file not shown.

View File

@ -13,15 +13,17 @@ namespace Eugen.ESystem
{ {
#region Version und Copyright #region Version und Copyright
// Version und Copyright // Version und Copyright
string dllName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen static string dllName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen
string dllVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); static string dllVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
string copyright = GenerateCopyright(); static string copyright = GenerateCopyright();
string icon = Application.StartupPath + "\\Info.bmp"; static string icon = Application.StartupPath + "\\Info.bmp";
//Assembly Datum und Zeit //Assembly Datum und Zeit
static DateTime value = AssemblyDateTime(); static DateTime value = AssemblyDateTime();
string date = value.ToShortDateString(); static string date = value.ToShortDateString();
string time = value.ToLongTimeString(); static string time = value.ToLongTimeString();
private static DateTime AssemblyDateTime() private static DateTime AssemblyDateTime()
{ {
var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
@ -88,7 +90,7 @@ namespace Eugen.ESystem
/// </summary> /// </summary>
public static string Copyright { set; get; } public static string Copyright { set; get; }
private void SetDllInfo() private static void SetDllInfo()
{ {
//Name, Version und Copyright setzen //Name, Version und Copyright setzen
DllName = dllName; DllName = dllName;
@ -97,29 +99,54 @@ namespace Eugen.ESystem
} }
#endregion #endregion
public DeleteFileFolder() /// <summary>
/// Constructor (for DLL-Information)
/// </summary>
static DeleteFileFolder()
{ {
SetDllInfo(); SetDllInfo();
Dir = false; Dir = false;
} }
List<string> undeletableFiles = new List<string>(); //Liste der unlöschbaren Dateien ///// <summary>
///// Delete Files in a folder
///// </summary>
//public DeleteFileFolder()
//{
// SetDllInfo();
private long FileCounter { set; get; } //Anzahl der abgearbeiteten Dateien // Dir = false;
private long DirectoryCounter { set; get; } //Anzahl der abgearbeiteten Verzeichnisse //}
private long NumberOfFiles { set; get; } //Anzahl der Dateien //public static List<string> UndeletableFiles = new List<string>(); //Liste der unlöschbaren Dateien
private long NumberOfDirectories { set; get; } //Anzahl der Verzeichnisse //public static List<string> UndeletableDirectories = new List<string>(); //Liste der unlöschbaren Verzeichnisse
public long PercentDone { set; get; } //Prozent abgeschlossen
private bool Dir { set; get; } //true = Verzeichnisse und Dateien; false = Nur Dateien private static long FileCounter { set; get; } //Anzahl der abgearbeiteten Dateien
private static long DirectoryCounter { set; get; } //Anzahl der abgearbeiteten Verzeichnisse
public static long NumberOfFiles { set; get; } //Anzahl der Dateien
public static long NumberOfDirectories { set; get; } //Anzahl der Verzeichnisse
public static long PercentDone { set; get; } //Prozent abgeschlossen
private static bool Dir { set; get; } //true = Verzeichnisse und Dateien; false = Nur Dateien
public static string Status { set; get; } //Statustext
/// <summary>
/// List of undeletable files
/// </summary>
public static List<string> UndeletableFiles { set; get; } //Liste der unlöschbaren Dateien
/// <summary>
/// List of undeletable directories
/// </summary>
public static List<string> UndeletableDirectories { set; get; } //Liste der unlöschbaren Verzeichnisse
/// <summary> /// <summary>
/// Deletes a singel File. /// Deletes a singel File.
/// </summary> /// </summary>
/// <param name="fileName">A valid filename with path.</param> /// <param name="fileName">A valid filename with path.</param>
/// <returns>If the file was successfully deleted, 'null' is returned, otherwise the filename.</returns> /// <returns>If the file was successfully deleted, 'null' is returned, otherwise the filename.</returns>
public string File(string fileName) public static string File(string fileName)
{ {
try try
{ {
@ -142,7 +169,7 @@ namespace Eugen.ESystem
/// <param name="fileName">A valid filename with path.</param> /// <param name="fileName">A valid filename with path.</param>
/// <param name="searchPattern">A valid file extension, e.g.: .txt</param> /// <param name="searchPattern">A valid file extension, e.g.: .txt</param>
/// <returns>If the file was successfully deleted, 'null' is returned, otherwise the filename.</returns> /// <returns>If the file was successfully deleted, 'null' is returned, otherwise the filename.</returns>
public string File(string fileName, string searchPattern) public static string File(string fileName, string searchPattern)
{ {
try try
{ {
@ -164,20 +191,19 @@ namespace Eugen.ESystem
} }
} }
/// <summary> /// <summary>
/// Delete all files in a specified folder. /// Delete all files in a specified folder.
/// </summary> /// </summary>
/// <param name="path">Full path of a folder.</param> /// <param name="path">Full path of a folder.</param>
/// <returns>Returns a list of all undeletable files.</returns> /// <returns>Returns a list of all undeletable files.</returns>
public List<string> AllFiles(string path) public static List<string> AllFiles(string path)
{ {
NumberOfFiles = CountFiles(path); //Anzahl der löschbaren Dateien NumberOfFiles = CountFiles(path); //Anzahl der löschbaren Dateien
FileCounter = 0; //Zähler zurücksetzen FileCounter = 0; //Zähler zurücksetzen
string result = ""; //Rückgabewert string result = ""; //Rückgabewert
undeletableFiles.Clear(); UndeletableFiles.Clear();
foreach (var file in Directory.GetFiles(path)) foreach (var file in Directory.GetFiles(path))
{ {
@ -193,16 +219,16 @@ namespace Eugen.ESystem
{ {
//Nur Dateien werden berücksichtigt //Nur Dateien werden berücksichtigt
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles) * Convert.ToDouble(FileCounter)); PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles) * Convert.ToDouble(FileCounter));
OnEvent(PercentDone); OnEvent(PercentDone, Status);
} }
if (result != null) if (result != null)
{ {
//Wenn ein Dateiname zurückgeliefert wird, dann in die Liste aufnehmen //Wenn ein Dateiname zurückgeliefert wird, dann in die Liste aufnehmen
undeletableFiles.Add(result); UndeletableFiles.Add(result);
} }
} }
return undeletableFiles; //Gibt die Liste der unlöschbaren Dateien zurück return UndeletableFiles; //Gibt die Liste der unlöschbaren Dateien zurück
} }
/// <summary> /// <summary>
@ -211,13 +237,13 @@ namespace Eugen.ESystem
/// <param name="path">Full path of a folder.</param> /// <param name="path">Full path of a folder.</param>
/// <param name="subFolder">If true, then all files in all subdirectories are also deleted.</param> /// <param name="subFolder">If true, then all files in all subdirectories are also deleted.</param>
/// <returns></returns> /// <returns></returns>
public List<string> AllFiles(string path, bool subFolder) public static List<string> AllFiles(string path, bool subFolder)
{ {
NumberOfFiles = CountFiles(path, subFolder); //Anzahl der löschbaren Dateien NumberOfFiles = CountFiles(path, subFolder); //Anzahl der löschbaren Dateien
FileCounter = 0; //Zähler zurücksetzen FileCounter = 0; //Zähler zurücksetzen
undeletableFiles.Clear(); //Liste der unlöschbaren Dateien zurücksetzen UndeletableFiles.Clear(); //Liste der unlöschbaren Dateien zurücksetzen
//Löscht alle Dateien und gibt die Liste der unlöschbaren Dateien zurück //Löscht alle Dateien und gibt die Liste der unlöschbaren Dateien zurück
return AllFilesInFolders(path, true); return AllFilesInFolders(path, true);
@ -230,20 +256,19 @@ namespace Eugen.ESystem
/// <param name="subFolder">If true, then all files in all subdirectories are also deleted.</param> /// <param name="subFolder">If true, then all files in all subdirectories are also deleted.</param>
/// <param name="searchPattern">A valid file extension, e.g.: .txt</param> /// <param name="searchPattern">A valid file extension, e.g.: .txt</param>
/// <returns>Returns a list of all undeletable files.</returns> /// <returns>Returns a list of all undeletable files.</returns>
public List<string> AllFiles(string path, bool subFolder, string searchPattern) public static List<string> AllFiles(string path, bool subFolder, string searchPattern)
{ {
NumberOfFiles = CountFiles(path, subFolder); //Anzahl der löschbaren Dateien NumberOfFiles = CountFiles(path, subFolder); //Anzahl der löschbaren Dateien
FileCounter = 0; //Zähler zurücksetzen FileCounter = 0; //Zähler zurücksetzen
undeletableFiles.Clear(); //Liste der unlöschbaren Dateien zurücksetzen UndeletableFiles.Clear(); //Liste der unlöschbaren Dateien zurücksetzen
//Löscht alle Dateien und gibt die Liste der unlöschbaren Dateien zurück //Löscht alle Dateien und gibt die Liste der unlöschbaren Dateien zurück
return AllFilesInFolders(path, true, searchPattern); return AllFilesInFolders(path, true, searchPattern);
} }
private static List<string> AllFilesInFolders(string path, bool subFolder)
private List<string> AllFilesInFolders(string path, bool subFolder)
{ {
string result = ""; //Rückgabewert string result = ""; //Rückgabewert
@ -256,19 +281,19 @@ namespace Eugen.ESystem
{ {
//Dateien un Verzeichnisse werden berücksichtigt //Dateien un Verzeichnisse werden berücksichtigt
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles + NumberOfDirectories) * Convert.ToDouble(FileCounter + DirectoryCounter)); PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles + NumberOfDirectories) * Convert.ToDouble(FileCounter + DirectoryCounter));
OnEvent(PercentDone); OnEvent(PercentDone, Status);
} }
else else
{ {
//Nur Dateien werden berücksichtigt //Nur Dateien werden berücksichtigt
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles) * Convert.ToDouble(FileCounter)); PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles) * Convert.ToDouble(FileCounter));
OnEvent(PercentDone); OnEvent(PercentDone, Status);
} }
if (result != null) if (result != null)
{ {
//Wenn ein Dateiname zurückgeliefert wird, dann in die Liste aufnehmen //Wenn ein Dateiname zurückgeliefert wird, dann in die Liste aufnehmen
undeletableFiles.Add(result); UndeletableFiles.Add(result);
} }
} }
if (subFolder) if (subFolder)
@ -280,10 +305,10 @@ namespace Eugen.ESystem
} }
} }
return undeletableFiles; //Gibt die Liste der unlöschbaren Dateien zurück return UndeletableFiles; //Gibt die Liste der unlöschbaren Dateien zurück
} }
private List<string> AllFilesInFolders(string path, bool subFolder, string searchPattern) private static List<string> AllFilesInFolders(string path, bool subFolder, string searchPattern)
{ {
string result = ""; //Rückgabewert string result = ""; //Rückgabewert
@ -294,7 +319,7 @@ namespace Eugen.ESystem
if (result != null) if (result != null)
{ {
//Wenn ein Dateiname zurückgeliefert wird, dann in die Liste aufnehmen //Wenn ein Dateiname zurückgeliefert wird, dann in die Liste aufnehmen
undeletableFiles.Add(result); UndeletableFiles.Add(result);
} }
} }
if (subFolder) if (subFolder)
@ -306,11 +331,11 @@ namespace Eugen.ESystem
} }
} }
return undeletableFiles; //Gibt die Liste der unlöschbaren Dateien zurück return UndeletableFiles; //Gibt die Liste der unlöschbaren Dateien zurück
} }
public string SingleDirectory(string path) public static string SingleDirectory(string path)
{ {
try try
{ {
@ -328,14 +353,22 @@ namespace Eugen.ESystem
} }
} }
public List<string> AllDirectories(string path) public static List<List<string>> AllDirectories(string path)
{ {
undeletableFiles.Clear(); //object[] undeleteableFilesFolders = new object[2];
List<List<string>> undeleteableFilesFolders = new List<List<string>>();
UndeletableFiles.Clear();
UndeletableDirectories.Clear();
if (!Directory.Exists(path)) if (!Directory.Exists(path))
{ {
undeletableFiles.Add(path); UndeletableDirectories.Add(path);
return undeletableFiles;
undeleteableFilesFolders[0] = UndeletableFiles;
undeleteableFilesFolders[1] = UndeletableDirectories;
return undeleteableFilesFolders;
} }
Dir = true; Dir = true;
@ -344,38 +377,40 @@ namespace Eugen.ESystem
NumberOfDirectories = CountDirectories(path); //Anzahl der löschbaren Verzeichnsse NumberOfDirectories = CountDirectories(path); //Anzahl der löschbaren Verzeichnsse
//Alle Dateien im Verzeichnis löschen //Alle Dateien im Verzeichnis löschen
undeletableFiles.AddRange(AllFiles(path, true)); UndeletableFiles.AddRange(AllFiles(path, true));
undeletableFiles = AllSubDirectories(path); //Alle Verzeichnisse löschen UndeletableDirectories = AllSubDirectories(path); //Alle Verzeichnisse löschen
string result = SingleDirectory(path); string result = SingleDirectory(path);
if (!String.IsNullOrEmpty(result)) if (!String.IsNullOrEmpty(result))
{ {
undeletableFiles.Add(result); UndeletableFiles.Add(result);
} }
//Berechnen wie viel Prozenz bereits gelöscht sind //Berechnen wie viel Prozenz bereits gelöscht sind
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles + NumberOfDirectories) * Convert.ToDouble(FileCounter + DirectoryCounter)); PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles + NumberOfDirectories) * Convert.ToDouble(FileCounter + DirectoryCounter));
OnEvent(PercentDone); OnEvent(PercentDone, Status);
return undeletableFiles; //Gibt die Liste der unlöschbaren Dateien und Verzeichnisse zurück undeleteableFilesFolders.Add(UndeletableFiles);
undeleteableFilesFolders.Add(UndeletableDirectories);
return undeleteableFilesFolders; //Gibt die Liste der unlöschbaren Dateien und Verzeichnisse zurück
} }
public List<string> AllSubDirectories(string path) private static List<string> AllSubDirectories(string path)
{ {
//Unterverzeichnisse löschen //Unterverzeichnisse löschen
foreach (var sFolder in Directory.GetDirectories(path)) foreach (var sFolder in Directory.GetDirectories(path))
{ {
undeletableFiles.AddRange(AllSubDirectories(sFolder)); UndeletableFiles.AddRange(AllSubDirectories(sFolder));
SingleDirectory(sFolder); SingleDirectory(sFolder);
//Berechnen wie viel Prozenz bereits gelöscht sind //Berechnen wie viel Prozenz bereits gelöscht sind
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles + NumberOfDirectories) * Convert.ToDouble(FileCounter + DirectoryCounter)); PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles + NumberOfDirectories) * Convert.ToDouble(FileCounter + DirectoryCounter));
OnEvent(PercentDone); OnEvent(PercentDone, Status);
} }
return undeletableFiles; //Gibt die Liste der unlöschbaren Dateien und Verzeichnisse zurück return UndeletableFiles; //Gibt die Liste der unlöschbaren Dateien und Verzeichnisse zurück
} }
/// <summary> /// <summary>
@ -383,7 +418,7 @@ namespace Eugen.ESystem
/// </summary> /// </summary>
/// <param name="path">Full path of a folder.</param> /// <param name="path">Full path of a folder.</param>
/// <returns>The number of files.</returns> /// <returns>The number of files.</returns>
public long CountFiles(string path) public static long CountFiles(string path)
{ {
long numberOfFiles = 0; //Anzahl der löschbaren Dateien long numberOfFiles = 0; //Anzahl der löschbaren Dateien
@ -401,7 +436,7 @@ namespace Eugen.ESystem
/// <param name="path">Full path of a folder.</param> /// <param name="path">Full path of a folder.</param>
/// <param name="subFolder">If true, then all files in all subdirectories are also counted.</param> /// <param name="subFolder">If true, then all files in all subdirectories are also counted.</param>
/// <returns>The number of files.</returns> /// <returns>The number of files.</returns>
public long CountFiles(string path, bool subFolder) public static long CountFiles(string path, bool subFolder)
{ {
if (!Directory.Exists(path)) if (!Directory.Exists(path))
{ {
@ -421,7 +456,7 @@ namespace Eugen.ESystem
/// <param name="subFolder">If true, then all files in all subdirectories are also counted.</param> /// <param name="subFolder">If true, then all files in all subdirectories are also counted.</param>
/// <param name="searchPattern">A valid file extension, e.g.: .txt</param> /// <param name="searchPattern">A valid file extension, e.g.: .txt</param>
/// <returns>The number of files.</returns> /// <returns>The number of files.</returns>
private long CountFile(string path, bool subFolder, string searchPattern) private static long CountFile(string path, bool subFolder, string searchPattern)
{ {
long numberOfFiles = 0; //Anzahl der löschbaren Dateien long numberOfFiles = 0; //Anzahl der löschbaren Dateien
@ -443,7 +478,7 @@ namespace Eugen.ESystem
return numberOfFiles; return numberOfFiles;
} }
private long CountAllFiles(string path, bool subFolder) private static long CountAllFiles(string path, bool subFolder)
{ {
foreach (var file in Directory.GetFiles(path)) foreach (var file in Directory.GetFiles(path))
{ {
@ -460,7 +495,7 @@ namespace Eugen.ESystem
return NumberOfFiles; return NumberOfFiles;
} }
private long CountAllFiles(string path, bool subFolder, string searchPattern) private static long CountAllFiles(string path, bool subFolder, string searchPattern)
{ {
foreach (var file in Directory.GetFiles(path)) foreach (var file in Directory.GetFiles(path))
{ {
@ -485,7 +520,7 @@ namespace Eugen.ESystem
/// </summary> /// </summary>
/// <param name="path">Full path of a folder.</param> /// <param name="path">Full path of a folder.</param>
/// <returns>The number of directories.</returns> /// <returns>The number of directories.</returns>
public long CountDirectories(string path) public static long CountDirectories(string path)
{ {
if (!Directory.Exists(path)) if (!Directory.Exists(path))
{ {
@ -498,7 +533,7 @@ namespace Eugen.ESystem
return NumberOfDirectories; return NumberOfDirectories;
} }
private long CountAllDirectories(string path) private static long CountAllDirectories(string path)
{ {
//Rekursive Aufruf //Rekursive Aufruf
foreach (var sFolder in Directory.GetDirectories(path)) foreach (var sFolder in Directory.GetDirectories(path))
@ -510,19 +545,69 @@ namespace Eugen.ESystem
return NumberOfDirectories; return NumberOfDirectories;
} }
/// <summary>
/// Clears the undeletabele directory list.
/// </summary>
public void ClearUndeletableFiles()
{
UndeletableFiles.Clear();
}
/// <summary>
/// Clears the undeletabele directory list.
/// </summary>
public void ClearUndeletableDirectories()
{
UndeletableDirectories.Clear();
}
#region Reset Counters
/// <summary>
/// Resets the file counter to 0.
/// </summary>
public static void ResetFileCounter()
{
FileCounter = 0;
}
/// <summary>
/// Resets the directory counter to 0.
/// </summary>
public static void ResetDirectoryCounter()
{
DirectoryCounter = 0;
}
/// <summary>
/// Resets the number of files to 0.
/// </summary>
public static void ResetNumberOfFiles()
{
NumberOfFiles = 0;
}
/// <summary>
/// Resets the number of directories to 0.
/// </summary>
public static void ResetNumberOfDirectories()
{
NumberOfDirectories = 0;
}
#endregion
#region Event Handler #region Event Handler
// Der Delegat muß die gleiche Signatur aufweisen wie die Eventhandler-Methode. // Der Delegat muß die gleiche Signatur aufweisen wie die Eventhandler-Methode.
public delegate void EventDelegate(long result); public delegate void EventDelegate(long result, string status);
// Das Event-Objekt ist vom Typ dieses Delegaten. // Das Event-Objekt ist vom Typ dieses Delegaten.
public event EventDelegate MyEvent; public static event EventDelegate MyEvent;
public void OnEvent(long result) public static void OnEvent(long result, string status)
{ {
// Prüft ob das Event überhaupt einen Abonnenten hat. // Prüft ob das Event überhaupt einen Abonnenten hat.
if (MyEvent != null) if (MyEvent != null)
{ {
MyEvent(result); MyEvent(result, status);
} }
} }
#endregion #endregion

View File

@ -43,7 +43,20 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="DeleteFileFolder.cs" /> <Compile Include="DeleteFileFolder.cs" />
<Compile Include="Properties\AppResources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>AppResources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\AppResources.de.resx" />
<EmbeddedResource Include="Properties\AppResources.en.resx" />
<EmbeddedResource Include="Properties\AppResources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>AppResources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

Binary file not shown.

Binary file not shown.

View File

@ -6,7 +6,7 @@ H:\Programmieren\Git-Repository\VisualStudio\2017\_DLL\DeleteFileFolder.git\Dele
H:\Programmieren\Git-Repository\VisualStudio\2017\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\DeleteFileFolder.pdb H:\Programmieren\Git-Repository\VisualStudio\2017\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\DeleteFileFolder.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\bin\Debug\hedff.dll H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\bin\Debug\hedff.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\bin\Debug\hedff.pdb H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\bin\Debug\hedff.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\DeleteFileFolder.csprojAssemblyReference.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\DeleteFileFolder.csproj.CoreCompileInputs.cache H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\DeleteFileFolder.csproj.CoreCompileInputs.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\hedff.dll H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\hedff.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\hedff.pdb H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\hedff.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\DeleteFileFolder\obj\Debug\DeleteFileFolder.csproj.AssemblyReference.cache

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

View File

@ -111,8 +111,6 @@ namespace Test_DeleteFileFolder
} }
string fileName = ""; string fileName = "";
bool allFiles = false;
bool folders = false;
bool subFolders = false; bool subFolders = false;
bool countOnly = false; bool countOnly = false;
@ -123,20 +121,22 @@ namespace Test_DeleteFileFolder
private void buttonDelete_Click(object sender, EventArgs e) private void buttonDelete_Click(object sender, EventArgs e)
{ {
//string undeletableElements = "";
string undeletableFile = ""; string undeletableFile = "";
List<string> undeletableFiles = new List<string>(); List<string> undeletableFiles = new List<string>();
List<string> undeletableFolders = new List<string>();
List<List<string>> undeleteableFilesFolders = new List<List<string>>();
string message = ""; string message = "";
//In diesem Bereich wird das Löschen ausgeführt --------------------- //In diesem Bereich wird das Löschen ausgeführt ---------------------
DeleteFileFolder Del = new DeleteFileFolder();
// Hier wird das Event abonniert. // Hier wird das Event abonniert.
// Das kann jede Klasse auf die gleiche Weise machen. // Das kann jede Klasse auf die gleiche Weise machen.
Del.MyEvent += new DeleteFileFolder.EventDelegate(EventHandler); DeleteFileFolder.MyEvent += new DeleteFileFolder.EventDelegate(EventHandler);
if (checkBoxCountOnly.Checked) if (checkBoxCountOnly.Checked)
{ {
labelDeletableFiles.Text = "Number of deletable Files: " + Del.CountFiles(textBoxFileName.Text, checkBoxSubdirectories.Checked); labelDeletableFiles.Text = "Number of deletable Files: " + DeleteFileFolder.CountFiles(textBoxFileName.Text, checkBoxSubdirectories.Checked);
labelDeletableDirectories.Text = "Number of deletable Directories: \t" + Del.CountDirectories(textBoxFileName.Text); labelDeletableDirectories.Text = "Number of deletable Directories: \t" + DeleteFileFolder.CountDirectories(textBoxFileName.Text);
} }
else else
{ {
@ -145,36 +145,44 @@ namespace Test_DeleteFileFolder
//Dateien löschen //Dateien löschen
if (radioButtonSingleFile.Checked) if (radioButtonSingleFile.Checked)
{ {
undeletableFile = Del.File(textBoxFileName.Text); //Eine einzelen Datei löschen undeletableFile = DeleteFileFolder.File(textBoxFileName.Text); //Eine einzelen Datei löschen
progressBar.Value = 100; progressBar.Value = 100;
} }
else else
{ {
if (!checkBoxSubdirectories.Checked) if (!checkBoxSubdirectories.Checked)
{ {
undeletableFiles = Del.AllFiles(textBoxFileName.Text); //Alle Dateien eines Verzeichnisses löschen undeletableFiles = DeleteFileFolder.AllFiles(textBoxFileName.Text); //Alle Dateien eines Verzeichnisses löschen
} }
else else
{ {
undeletableFiles = Del.AllFiles(textBoxFileName.Text, true); //Alle Dateien eines Verzeichnisses und aller Unterverzeichnisse löschen undeletableFiles = DeleteFileFolder.AllFiles(textBoxFileName.Text, true); //Alle Dateien eines Verzeichnisses und aller Unterverzeichnisse löschen
} }
} }
} }
else else
{ {
undeletableFiles = Del.AllDirectories(textBoxFileName.Text); undeleteableFilesFolders = DeleteFileFolder.AllDirectories(textBoxFileName.Text); //Alle Verzeichnisse löschen
} }
} }
//Nicht löschbare Dateien und Verzeichnisse anzeigen //Nicht löschbare Dateien und Verzeichnisse anzeigen
if (undeletableFiles != null & undeletableFiles.Any()) if (undeleteableFilesFolders != null & undeletableFiles.Any())
{ {
message = "Undeleteable elements:\n"; message = "Undeleteable elements:\n";
foreach (var element in undeletableFiles) foreach (var item in undeleteableFilesFolders)
{
foreach (var element in item)
{ {
message += element + "\n"; message += element + "\n";
} }
}
//foreach (var element in undeletableFiles)
//{
// message += element + "\n";
//}
MessageBox.Show(message); MessageBox.Show(message);
} }
} }
@ -225,7 +233,7 @@ namespace Test_DeleteFileFolder
} }
#region Event Handler #region Event Handler
void EventHandler(long value) void EventHandler(long value, string Status)
{ {
//Die ProgressBar updaten //Die ProgressBar updaten
progressBar.Value = Convert.ToInt32(value); progressBar.Value = Convert.ToInt32(value);

View File

@ -33,6 +33,10 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="hedff, Version=1.0.7915.24073, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DeleteFileFolder\bin\Debug\hedff.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
@ -79,11 +83,5 @@
<ItemGroup> <ItemGroup>
<None Include="App.config" /> <None Include="App.config" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DeleteFileFolder\DeleteFileFolder.csproj">
<Project>{9e1e89be-2500-4b00-8179-6fced03f07c9}</Project>
<Name>DeleteFileFolder</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

View File

@ -16,7 +16,6 @@ H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\bin\Debug\Test_DeleteFileFolder.pdb H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\bin\Debug\Test_DeleteFileFolder.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\bin\Debug\hedff.dll H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\bin\Debug\hedff.dll
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\bin\Debug\hedff.pdb H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\bin\Debug\hedff.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.csprojAssemblyReference.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.Form1.resources H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.Form1.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.Properties.Resources.resources H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.Properties.Resources.resources
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.csproj.GenerateResource.cache H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.csproj.GenerateResource.cache
@ -24,3 +23,5 @@ H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.csproj.CopyComplete H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.csproj.CopyComplete
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.exe H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.exe
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.pdb H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.pdb
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.csproj.AssemblyReference.cache
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.csproj.SuggestedBindingRedirects.cache

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]