Compare commits

..

No commits in common. "5efbb5c0288105931f56fcda860d69e2f36ca0f2" and "0340c8a4184c5a6378198a15edd1990113670df0" have entirely different histories.

39 changed files with 819 additions and 1027 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,88 +0,0 @@
{
"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

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

Binary file not shown.

View File

@ -11,20 +11,18 @@ namespace Eugen.ESystem
{ {
public class DeleteFileFolder public class DeleteFileFolder
{ {
#region Version und Copyright #region Version und Copyright
// Version und Copyright // Version und Copyright
static string dllName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen string dllName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen
static string dllVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); 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);
static string copyright = GenerateCopyright(); string copyright = GenerateCopyright();
static string icon = Application.StartupPath + "\\Info.bmp"; string icon = Application.StartupPath + "\\Info.bmp";
//Assembly Datum und Zeit //Assembly Datum und Zeit
static DateTime value = AssemblyDateTime(); static DateTime value = AssemblyDateTime();
static string date = value.ToShortDateString(); string date = value.ToShortDateString();
static string time = value.ToLongTimeString(); 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;
var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision)); var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision));
@ -90,7 +88,7 @@ namespace Eugen.ESystem
/// </summary> /// </summary>
public static string Copyright { set; get; } public static string Copyright { set; get; }
private static void SetDllInfo() private void SetDllInfo()
{ {
//Name, Version und Copyright setzen //Name, Version und Copyright setzen
DllName = dllName; DllName = dllName;
@ -99,54 +97,29 @@ namespace Eugen.ESystem
} }
#endregion #endregion
/// <summary> public DeleteFileFolder()
/// Constructor (for DLL-Information)
/// </summary>
static DeleteFileFolder()
{ {
SetDllInfo(); SetDllInfo();
Dir = false;
}
///// <summary> Dir = false;
///// Delete Files in a folder }
///// </summary>
//public DeleteFileFolder()
//{
// SetDllInfo();
// Dir = false; List<string> undeletableFiles = new List<string>(); //Liste der unlöschbaren Dateien
//}
//public static List<string> UndeletableFiles = new List<string>(); //Liste der unlöschbaren Dateien private long FileCounter { set; get; } //Anzahl der abgearbeiteten Dateien
//public static List<string> UndeletableDirectories = new List<string>(); //Liste der unlöschbaren Verzeichnisse private long DirectoryCounter { set; get; } //Anzahl der abgearbeiteten Verzeichnisse
private static long FileCounter { set; get; } //Anzahl der abgearbeiteten Dateien private long NumberOfFiles { set; get; } //Anzahl der Dateien
private static long DirectoryCounter { set; get; } //Anzahl der abgearbeiteten Verzeichnisse private long NumberOfDirectories { set; get; } //Anzahl der Verzeichnisse
public long PercentDone { set; get; } //Prozent abgeschlossen
public static long NumberOfFiles { set; get; } //Anzahl der Dateien private bool Dir { set; get; } //true = Verzeichnisse und Dateien; false = Nur 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 static string File(string fileName) public string File(string fileName)
{ {
try try
{ {
@ -169,7 +142,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 static string File(string fileName, string searchPattern) public string File(string fileName, string searchPattern)
{ {
try try
{ {
@ -191,19 +164,20 @@ 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 static List<string> AllFiles(string path) public 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))
{ {
@ -219,16 +193,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, Status); OnEvent(PercentDone);
} }
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>
@ -237,13 +211,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 static List<string> AllFiles(string path, bool subFolder) public 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);
@ -256,19 +230,20 @@ 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 static List<string> AllFiles(string path, bool subFolder, string searchPattern) public 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
@ -281,19 +256,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, Status); OnEvent(PercentDone);
} }
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, Status); OnEvent(PercentDone);
} }
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)
@ -305,10 +280,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 static List<string> AllFilesInFolders(string path, bool subFolder, string searchPattern) private List<string> AllFilesInFolders(string path, bool subFolder, string searchPattern)
{ {
string result = ""; //Rückgabewert string result = ""; //Rückgabewert
@ -319,7 +294,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)
@ -331,11 +306,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 static string SingleDirectory(string path) public string SingleDirectory(string path)
{ {
try try
{ {
@ -353,22 +328,14 @@ namespace Eugen.ESystem
} }
} }
public static List<List<string>> AllDirectories(string path) public List<string> AllDirectories(string path)
{ {
//object[] undeleteableFilesFolders = new object[2]; undeletableFiles.Clear();
List<List<string>> undeleteableFilesFolders = new List<List<string>>();
UndeletableFiles.Clear();
UndeletableDirectories.Clear();
if (!Directory.Exists(path)) if (!Directory.Exists(path))
{ {
UndeletableDirectories.Add(path); undeletableFiles.Add(path);
return undeletableFiles;
undeleteableFilesFolders[0] = UndeletableFiles;
undeleteableFilesFolders[1] = UndeletableDirectories;
return undeleteableFilesFolders;
} }
Dir = true; Dir = true;
@ -377,40 +344,38 @@ 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));
UndeletableDirectories = AllSubDirectories(path); //Alle Verzeichnisse löschen undeletableFiles = 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, Status); OnEvent(PercentDone);
undeleteableFilesFolders.Add(UndeletableFiles); return undeletableFiles; //Gibt die Liste der unlöschbaren Dateien und Verzeichnisse zurück
undeleteableFilesFolders.Add(UndeletableDirectories);
return undeleteableFilesFolders; //Gibt die Liste der unlöschbaren Dateien und Verzeichnisse zurück
} }
private static List<string> AllSubDirectories(string path) public 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, Status); OnEvent(PercentDone);
} }
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>
@ -418,7 +383,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 static long CountFiles(string path) public long CountFiles(string path)
{ {
long numberOfFiles = 0; //Anzahl der löschbaren Dateien long numberOfFiles = 0; //Anzahl der löschbaren Dateien
@ -436,7 +401,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 static long CountFiles(string path, bool subFolder) public long CountFiles(string path, bool subFolder)
{ {
if (!Directory.Exists(path)) if (!Directory.Exists(path))
{ {
@ -456,7 +421,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 static long CountFile(string path, bool subFolder, string searchPattern) private long CountFile(string path, bool subFolder, string searchPattern)
{ {
long numberOfFiles = 0; //Anzahl der löschbaren Dateien long numberOfFiles = 0; //Anzahl der löschbaren Dateien
@ -478,7 +443,7 @@ namespace Eugen.ESystem
return numberOfFiles; return numberOfFiles;
} }
private static long CountAllFiles(string path, bool subFolder) private long CountAllFiles(string path, bool subFolder)
{ {
foreach (var file in Directory.GetFiles(path)) foreach (var file in Directory.GetFiles(path))
{ {
@ -495,7 +460,7 @@ namespace Eugen.ESystem
return NumberOfFiles; return NumberOfFiles;
} }
private static long CountAllFiles(string path, bool subFolder, string searchPattern) private long CountAllFiles(string path, bool subFolder, string searchPattern)
{ {
foreach (var file in Directory.GetFiles(path)) foreach (var file in Directory.GetFiles(path))
{ {
@ -520,7 +485,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 static long CountDirectories(string path) public long CountDirectories(string path)
{ {
if (!Directory.Exists(path)) if (!Directory.Exists(path))
{ {
@ -533,7 +498,7 @@ namespace Eugen.ESystem
return NumberOfDirectories; return NumberOfDirectories;
} }
private static long CountAllDirectories(string path) private long CountAllDirectories(string path)
{ {
//Rekursive Aufruf //Rekursive Aufruf
foreach (var sFolder in Directory.GetDirectories(path)) foreach (var sFolder in Directory.GetDirectories(path))
@ -545,69 +510,19 @@ 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, string status); public delegate void EventDelegate(long result);
// Das Event-Objekt ist vom Typ dieses Delegaten. // Das Event-Objekt ist vom Typ dieses Delegaten.
public static event EventDelegate MyEvent; public event EventDelegate MyEvent;
public static void OnEvent(long result, string status) public void OnEvent(long result)
{ {
// 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, status); MyEvent(result);
} }
} }
#endregion #endregion

View File

@ -43,20 +43,7 @@
</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

@ -1,4 +0,0 @@
// <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,6 +111,8 @@ 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;
@ -121,22 +123,20 @@ 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.
DeleteFileFolder.MyEvent += new DeleteFileFolder.EventDelegate(EventHandler); Del.MyEvent += new DeleteFileFolder.EventDelegate(EventHandler);
if (checkBoxCountOnly.Checked) if (checkBoxCountOnly.Checked)
{ {
labelDeletableFiles.Text = "Number of deletable Files: " + DeleteFileFolder.CountFiles(textBoxFileName.Text, checkBoxSubdirectories.Checked); labelDeletableFiles.Text = "Number of deletable Files: " + Del.CountFiles(textBoxFileName.Text, checkBoxSubdirectories.Checked);
labelDeletableDirectories.Text = "Number of deletable Directories: \t" + DeleteFileFolder.CountDirectories(textBoxFileName.Text); labelDeletableDirectories.Text = "Number of deletable Directories: \t" + Del.CountDirectories(textBoxFileName.Text);
} }
else else
{ {
@ -145,44 +145,36 @@ namespace Test_DeleteFileFolder
//Dateien löschen //Dateien löschen
if (radioButtonSingleFile.Checked) if (radioButtonSingleFile.Checked)
{ {
undeletableFile = DeleteFileFolder.File(textBoxFileName.Text); //Eine einzelen Datei löschen undeletableFile = Del.File(textBoxFileName.Text); //Eine einzelen Datei löschen
progressBar.Value = 100; progressBar.Value = 100;
} }
else else
{ {
if (!checkBoxSubdirectories.Checked) if (!checkBoxSubdirectories.Checked)
{ {
undeletableFiles = DeleteFileFolder.AllFiles(textBoxFileName.Text); //Alle Dateien eines Verzeichnisses löschen undeletableFiles = Del.AllFiles(textBoxFileName.Text); //Alle Dateien eines Verzeichnisses löschen
} }
else else
{ {
undeletableFiles = DeleteFileFolder.AllFiles(textBoxFileName.Text, true); //Alle Dateien eines Verzeichnisses und aller Unterverzeichnisse löschen undeletableFiles = Del.AllFiles(textBoxFileName.Text, true); //Alle Dateien eines Verzeichnisses und aller Unterverzeichnisse löschen
} }
} }
} }
else else
{ {
undeleteableFilesFolders = DeleteFileFolder.AllDirectories(textBoxFileName.Text); //Alle Verzeichnisse löschen undeletableFiles = Del.AllDirectories(textBoxFileName.Text);
} }
} }
//Nicht löschbare Dateien und Verzeichnisse anzeigen //Nicht löschbare Dateien und Verzeichnisse anzeigen
if (undeleteableFilesFolders != null & undeletableFiles.Any()) if (undeletableFiles != null & undeletableFiles.Any())
{ {
message = "Undeleteable elements:\n"; message = "Undeleteable elements:\n";
foreach (var item in undeleteableFilesFolders) foreach (var element in undeletableFiles)
{ {
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);
} }
} }
@ -233,7 +225,7 @@ namespace Test_DeleteFileFolder
} }
#region Event Handler #region Event Handler
void EventHandler(long value, string Status) void EventHandler(long value)
{ {
//Die ProgressBar updaten //Die ProgressBar updaten
progressBar.Value = Convert.ToInt32(value); progressBar.Value = Convert.ToInt32(value);

View File

@ -33,10 +33,6 @@
<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" />
@ -83,5 +79,11 @@
<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,6 +16,7 @@ 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
@ -23,5 +24,3 @@ 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

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