Änderung

- Beim rekursiven Löschen von Verzeichnissen, werden unlöschbare
   Verzeichnisse und Dateien in getrennten Listen ausgegeben.
This commit is contained in:
Hoeglinger Eugen 2022-04-15 16:22:18 +02:00
parent 5356231a8d
commit ad76dd0246
31 changed files with 860 additions and 825 deletions

Binary file not shown.

Binary file not shown.

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

@ -117,9 +117,10 @@ namespace Eugen.ESystem
Dir = false;
}
List<string> undeletableFiles = new List<string>(); //Liste der unlöschbaren Dateien
public List<string> undeletableFiles = new List<string>(); //Liste der unlöschbaren Dateien
public List<string> undeletableDirectories = new List<string>(); //Liste der unlöschbaren Verzeichnisse
private long FileCounter { set; get; } //Anzahl der abgearbeiteten Dateien
private long FileCounter { set; get; } //Anzahl der abgearbeiteten Dateien
private long DirectoryCounter { set; get; } //Anzahl der abgearbeiteten Verzeichnisse
private long NumberOfFiles { set; get; } //Anzahl der Dateien
@ -177,7 +178,6 @@ namespace Eugen.ESystem
}
}
/// <summary>
/// Delete all files in a specified folder.
/// </summary>
@ -255,7 +255,6 @@ namespace Eugen.ESystem
return AllFilesInFolders(path, true, searchPattern);
}
private List<string> AllFilesInFolders(string path, bool subFolder)
{
string result = ""; //Rückgabewert
@ -341,14 +340,22 @@ namespace Eugen.ESystem
}
}
public List<string> AllDirectories(string path)
public List<List<string>> AllDirectories(string path)
{
//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;
@ -359,7 +366,7 @@ namespace Eugen.ESystem
//Alle Dateien im Verzeichnis löschen
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))
@ -371,7 +378,9 @@ namespace Eugen.ESystem
PercentDone = Convert.ToInt32(100 / Convert.ToDouble(NumberOfFiles + NumberOfDirectories) * Convert.ToDouble(FileCounter + DirectoryCounter));
OnEvent(PercentDone);
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)

Binary file not shown.

Binary file not shown.

View File

@ -9,3 +9,4 @@ H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Delet
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.

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 = "";
bool allFiles = false;
bool folders = false;
bool subFolders = false;
bool countOnly = false;
@ -123,8 +121,11 @@ 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 ---------------------
@ -162,19 +163,27 @@ namespace Test_DeleteFileFolder
}
else
{
undeletableFiles = Del.AllDirectories(textBoxFileName.Text);
undeleteableFilesFolders = Del.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);
}
}

View File

@ -24,3 +24,4 @@ H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DeleteFileFolder.git\Test_
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

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")]