Compare commits
10 Commits
0340c8a418
...
5efbb5c028
| Author | SHA1 | Date | |
|---|---|---|---|
| 5efbb5c028 | |||
| 75a674b069 | |||
|
|
8e5fd3ae36 | ||
|
|
78ce0652b3 | ||
|
|
48970fa89b | ||
|
|
877c0a5278 | ||
|
|
3b2eff92a9 | ||
|
|
6ec58cc8ea | ||
|
|
ad76dd0246 | ||
| 5356231a8d |
Binary file not shown.
Binary file not shown.
BIN
.vs/DeleteFileFolder.git/v17/.suo
Normal file
BIN
.vs/DeleteFileFolder.git/v17/.suo
Normal file
Binary file not shown.
88
.vs/DeleteFileFolder.git/v17/DocumentLayout.json
Normal file
88
.vs/DeleteFileFolder.git/v17/DocumentLayout.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
7
.vs/VSWorkspaceState.json
Normal file
7
.vs/VSWorkspaceState.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"ExpandedNodes": [
|
||||
""
|
||||
],
|
||||
"SelectedNode": "\\DeleteFileFolder.git.sln",
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
||||
BIN
.vs/slnx.sqlite
Normal file
BIN
.vs/slnx.sqlite
Normal file
Binary file not shown.
@ -11,18 +11,20 @@ namespace Eugen.ESystem
|
||||
{
|
||||
public class DeleteFileFolder
|
||||
{
|
||||
#region Version und Copyright
|
||||
// Version und Copyright
|
||||
string dllName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen
|
||||
string dllVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
#region Version und Copyright
|
||||
// Version und Copyright
|
||||
static string dllName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen
|
||||
static string dllVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
|
||||
string copyright = GenerateCopyright();
|
||||
string icon = Application.StartupPath + "\\Info.bmp";
|
||||
static string copyright = GenerateCopyright();
|
||||
static string icon = Application.StartupPath + "\\Info.bmp";
|
||||
|
||||
//Assembly Datum und Zeit
|
||||
static DateTime value = AssemblyDateTime();
|
||||
string date = value.ToShortDateString();
|
||||
string time = value.ToLongTimeString();
|
||||
private static DateTime AssemblyDateTime()
|
||||
static string date = value.ToShortDateString();
|
||||
static string time = value.ToLongTimeString();
|
||||
|
||||
private static DateTime AssemblyDateTime()
|
||||
{
|
||||
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));
|
||||
@ -88,7 +90,7 @@ namespace Eugen.ESystem
|
||||
/// </summary>
|
||||
public static string Copyright { set; get; }
|
||||
|
||||
private void SetDllInfo()
|
||||
private static void SetDllInfo()
|
||||
{
|
||||
//Name, Version und Copyright setzen
|
||||
DllName = dllName;
|
||||
@ -97,29 +99,54 @@ namespace Eugen.ESystem
|
||||
}
|
||||
#endregion
|
||||
|
||||
public DeleteFileFolder()
|
||||
/// <summary>
|
||||
/// Constructor (for DLL-Information)
|
||||
/// </summary>
|
||||
static DeleteFileFolder()
|
||||
{
|
||||
SetDllInfo();
|
||||
SetDllInfo();
|
||||
Dir = false;
|
||||
}
|
||||
|
||||
Dir = false;
|
||||
}
|
||||
///// <summary>
|
||||
///// Delete Files in a folder
|
||||
///// </summary>
|
||||
//public DeleteFileFolder()
|
||||
//{
|
||||
// SetDllInfo();
|
||||
|
||||
List<string> undeletableFiles = new List<string>(); //Liste der unlöschbaren Dateien
|
||||
// Dir = false;
|
||||
//}
|
||||
|
||||
private long FileCounter { set; get; } //Anzahl der abgearbeiteten Dateien
|
||||
private long DirectoryCounter { set; get; } //Anzahl der abgearbeiteten Verzeichnisse
|
||||
//public static List<string> UndeletableFiles = new List<string>(); //Liste der unlöschbaren Dateien
|
||||
//public static List<string> UndeletableDirectories = new List<string>(); //Liste der unlöschbaren Verzeichnisse
|
||||
|
||||
private long NumberOfFiles { set; get; } //Anzahl der Dateien
|
||||
private long NumberOfDirectories { set; get; } //Anzahl der 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>
|
||||
/// Deletes a singel File.
|
||||
/// </summary>
|
||||
/// <param name="fileName">A valid filename with path.</param>
|
||||
/// <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
|
||||
{
|
||||
@ -142,7 +169,7 @@ namespace Eugen.ESystem
|
||||
/// <param name="fileName">A valid filename with path.</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>
|
||||
public string File(string fileName, string searchPattern)
|
||||
public static string File(string fileName, string searchPattern)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -164,20 +191,19 @@ namespace Eugen.ESystem
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Delete all files in a specified folder.
|
||||
/// </summary>
|
||||
/// <param name="path">Full path of a folder.</param>
|
||||
/// <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
|
||||
|
||||
FileCounter = 0; //Zähler zurücksetzen
|
||||
string result = ""; //Rückgabewert
|
||||
|
||||
undeletableFiles.Clear();
|
||||
UndeletableFiles.Clear();
|
||||
|
||||
foreach (var file in Directory.GetFiles(path))
|
||||
{
|
||||
@ -193,16 +219,16 @@ namespace Eugen.ESystem
|
||||
{
|
||||
//Nur Dateien werden berücksichtigt
|
||||
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles) * Convert.ToDouble(FileCounter));
|
||||
OnEvent(PercentDone);
|
||||
OnEvent(PercentDone, Status);
|
||||
}
|
||||
|
||||
if (result != null)
|
||||
{
|
||||
//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>
|
||||
@ -211,13 +237,13 @@ namespace Eugen.ESystem
|
||||
/// <param name="path">Full path of a folder.</param>
|
||||
/// <param name="subFolder">If true, then all files in all subdirectories are also deleted.</param>
|
||||
/// <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
|
||||
|
||||
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
|
||||
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="searchPattern">A valid file extension, e.g.: .txt</param>
|
||||
/// <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
|
||||
|
||||
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
|
||||
return AllFilesInFolders(path, true, searchPattern);
|
||||
}
|
||||
|
||||
|
||||
private List<string> AllFilesInFolders(string path, bool subFolder)
|
||||
private static List<string> AllFilesInFolders(string path, bool subFolder)
|
||||
{
|
||||
string result = ""; //Rückgabewert
|
||||
|
||||
@ -256,19 +281,19 @@ namespace Eugen.ESystem
|
||||
{
|
||||
//Dateien un Verzeichnisse werden berücksichtigt
|
||||
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles + NumberOfDirectories) * Convert.ToDouble(FileCounter + DirectoryCounter));
|
||||
OnEvent(PercentDone);
|
||||
OnEvent(PercentDone, Status);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Nur Dateien werden berücksichtigt
|
||||
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles) * Convert.ToDouble(FileCounter));
|
||||
OnEvent(PercentDone);
|
||||
OnEvent(PercentDone, Status);
|
||||
}
|
||||
|
||||
if (result != null)
|
||||
{
|
||||
//Wenn ein Dateiname zurückgeliefert wird, dann in die Liste aufnehmen
|
||||
undeletableFiles.Add(result);
|
||||
UndeletableFiles.Add(result);
|
||||
}
|
||||
}
|
||||
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
|
||||
|
||||
@ -294,7 +319,7 @@ namespace Eugen.ESystem
|
||||
if (result != null)
|
||||
{
|
||||
//Wenn ein Dateiname zurückgeliefert wird, dann in die Liste aufnehmen
|
||||
undeletableFiles.Add(result);
|
||||
UndeletableFiles.Add(result);
|
||||
}
|
||||
}
|
||||
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
|
||||
{
|
||||
@ -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))
|
||||
{
|
||||
undeletableFiles.Add(path);
|
||||
return undeletableFiles;
|
||||
UndeletableDirectories.Add(path);
|
||||
|
||||
undeleteableFilesFolders[0] = UndeletableFiles;
|
||||
undeleteableFilesFolders[1] = UndeletableDirectories;
|
||||
|
||||
return undeleteableFilesFolders;
|
||||
}
|
||||
|
||||
Dir = true;
|
||||
@ -344,38 +377,40 @@ namespace Eugen.ESystem
|
||||
NumberOfDirectories = CountDirectories(path); //Anzahl der löschbaren Verzeichnsse
|
||||
|
||||
//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);
|
||||
if (!String.IsNullOrEmpty(result))
|
||||
{
|
||||
undeletableFiles.Add(result);
|
||||
UndeletableFiles.Add(result);
|
||||
}
|
||||
|
||||
//Berechnen wie viel Prozenz bereits gelöscht sind
|
||||
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
|
||||
foreach (var sFolder in Directory.GetDirectories(path))
|
||||
{
|
||||
undeletableFiles.AddRange(AllSubDirectories(sFolder));
|
||||
UndeletableFiles.AddRange(AllSubDirectories(sFolder));
|
||||
|
||||
SingleDirectory(sFolder);
|
||||
|
||||
//Berechnen wie viel Prozenz bereits gelöscht sind
|
||||
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>
|
||||
@ -383,7 +418,7 @@ namespace Eugen.ESystem
|
||||
/// </summary>
|
||||
/// <param name="path">Full path of a folder.</param>
|
||||
/// <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
|
||||
|
||||
@ -401,7 +436,7 @@ namespace Eugen.ESystem
|
||||
/// <param name="path">Full path of a folder.</param>
|
||||
/// <param name="subFolder">If true, then all files in all subdirectories are also counted.</param>
|
||||
/// <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))
|
||||
{
|
||||
@ -421,7 +456,7 @@ namespace Eugen.ESystem
|
||||
/// <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>
|
||||
/// <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
|
||||
|
||||
@ -443,7 +478,7 @@ namespace Eugen.ESystem
|
||||
return numberOfFiles;
|
||||
}
|
||||
|
||||
private long CountAllFiles(string path, bool subFolder)
|
||||
private static long CountAllFiles(string path, bool subFolder)
|
||||
{
|
||||
foreach (var file in Directory.GetFiles(path))
|
||||
{
|
||||
@ -460,7 +495,7 @@ namespace Eugen.ESystem
|
||||
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))
|
||||
{
|
||||
@ -485,7 +520,7 @@ namespace Eugen.ESystem
|
||||
/// </summary>
|
||||
/// <param name="path">Full path of a folder.</param>
|
||||
/// <returns>The number of directories.</returns>
|
||||
public long CountDirectories(string path)
|
||||
public static long CountDirectories(string path)
|
||||
{
|
||||
if (!Directory.Exists(path))
|
||||
{
|
||||
@ -498,7 +533,7 @@ namespace Eugen.ESystem
|
||||
return NumberOfDirectories;
|
||||
}
|
||||
|
||||
private long CountAllDirectories(string path)
|
||||
private static long CountAllDirectories(string path)
|
||||
{
|
||||
//Rekursive Aufruf
|
||||
foreach (var sFolder in Directory.GetDirectories(path))
|
||||
@ -510,19 +545,69 @@ namespace Eugen.ESystem
|
||||
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
|
||||
// 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.
|
||||
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.
|
||||
if (MyEvent != null)
|
||||
{
|
||||
MyEvent(result);
|
||||
MyEvent(result, status);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -43,7 +43,20 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<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" />
|
||||
</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" />
|
||||
</Project>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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-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\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\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\DeleteFileFolder.csproj.AssemblyReference.cache
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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")]
|
||||
@ -111,8 +111,6 @@ namespace Test_DeleteFileFolder
|
||||
}
|
||||
|
||||
string fileName = "";
|
||||
bool allFiles = false;
|
||||
bool folders = false;
|
||||
bool subFolders = false;
|
||||
bool countOnly = false;
|
||||
|
||||
@ -123,20 +121,22 @@ namespace Test_DeleteFileFolder
|
||||
|
||||
private void buttonDelete_Click(object sender, EventArgs e)
|
||||
{
|
||||
//string undeletableElements = "";
|
||||
string undeletableFile = "";
|
||||
List<string> undeletableFiles = new List<string>();
|
||||
List<string> undeletableFolders = new List<string>();
|
||||
List<List<string>> undeleteableFilesFolders = new List<List<string>>();
|
||||
string message = "";
|
||||
|
||||
//In diesem Bereich wird das Löschen ausgeführt ---------------------
|
||||
DeleteFileFolder Del = new DeleteFileFolder();
|
||||
// Hier wird das Event abonniert.
|
||||
// Das kann jede Klasse auf die gleiche Weise machen.
|
||||
Del.MyEvent += new DeleteFileFolder.EventDelegate(EventHandler);
|
||||
DeleteFileFolder.MyEvent += new DeleteFileFolder.EventDelegate(EventHandler);
|
||||
|
||||
if (checkBoxCountOnly.Checked)
|
||||
{
|
||||
labelDeletableFiles.Text = "Number of deletable Files: " + Del.CountFiles(textBoxFileName.Text, checkBoxSubdirectories.Checked);
|
||||
labelDeletableDirectories.Text = "Number of deletable Directories: \t" + Del.CountDirectories(textBoxFileName.Text);
|
||||
labelDeletableFiles.Text = "Number of deletable Files: " + DeleteFileFolder.CountFiles(textBoxFileName.Text, checkBoxSubdirectories.Checked);
|
||||
labelDeletableDirectories.Text = "Number of deletable Directories: \t" + DeleteFileFolder.CountDirectories(textBoxFileName.Text);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -145,36 +145,44 @@ namespace Test_DeleteFileFolder
|
||||
//Dateien löschen
|
||||
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;
|
||||
}
|
||||
else
|
||||
{
|
||||
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
|
||||
{
|
||||
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
|
||||
{
|
||||
undeletableFiles = Del.AllDirectories(textBoxFileName.Text);
|
||||
undeleteableFilesFolders = DeleteFileFolder.AllDirectories(textBoxFileName.Text); //Alle Verzeichnisse löschen
|
||||
}
|
||||
}
|
||||
|
||||
//Nicht löschbare Dateien und Verzeichnisse anzeigen
|
||||
if (undeletableFiles != null & undeletableFiles.Any())
|
||||
if (undeleteableFilesFolders != null & undeletableFiles.Any())
|
||||
{
|
||||
message = "Undeleteable elements:\n";
|
||||
|
||||
foreach (var element in undeletableFiles)
|
||||
foreach (var item in undeleteableFilesFolders)
|
||||
{
|
||||
message += element + "\n";
|
||||
foreach (var element in item)
|
||||
{
|
||||
message += element + "\n";
|
||||
}
|
||||
}
|
||||
|
||||
//foreach (var element in undeletableFiles)
|
||||
//{
|
||||
// message += element + "\n";
|
||||
//}
|
||||
MessageBox.Show(message);
|
||||
}
|
||||
}
|
||||
@ -225,7 +233,7 @@ namespace Test_DeleteFileFolder
|
||||
}
|
||||
|
||||
#region Event Handler
|
||||
void EventHandler(long value)
|
||||
void EventHandler(long value, string Status)
|
||||
{
|
||||
//Die ProgressBar updaten
|
||||
progressBar.Value = Convert.ToInt32(value);
|
||||
|
||||
@ -33,6 +33,10 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<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.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
@ -79,11 +83,5 @@
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</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" />
|
||||
</Project>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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\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\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.Properties.Resources.resources
|
||||
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.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.csproj.AssemblyReference.cache
|
||||
H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_DeleteFileFolder\obj\Debug\Test_DeleteFileFolder.csproj.SuggestedBindingRedirects.cache
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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")]
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user