Improve error handling
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
using TBDel.Services;
|
using TBDel.Services;
|
||||||
|
|
||||||
namespace TBDel.Commands
|
namespace TBDel.Commands;
|
||||||
{
|
|
||||||
public class DeleteAllCommand
|
public class DeleteAllCommand
|
||||||
{
|
{
|
||||||
public static async Task DeleteAll()
|
public static async Task DeleteAll()
|
||||||
@@ -17,7 +17,8 @@ namespace TBDel.Commands
|
|||||||
}
|
}
|
||||||
|
|
||||||
Console.ForegroundColor = ConsoleColor.Yellow;
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||||
Console.Write($"Are you sure you want to permanently delete {allFiles.Count} file(s) and {allFolders.Count} folder(s)? (y/N) ");
|
Console.Write(
|
||||||
|
$"Are you sure you want to permanently delete {allFiles.Count} file(s) and {allFolders.Count} folder(s)? (y/N) ");
|
||||||
Console.ResetColor();
|
Console.ResetColor();
|
||||||
var input = Console.ReadLine();
|
var input = Console.ReadLine();
|
||||||
if (input != "y")
|
if (input != "y")
|
||||||
@@ -30,14 +31,57 @@ namespace TBDel.Commands
|
|||||||
|
|
||||||
foreach (var file in allFiles)
|
foreach (var file in allFiles)
|
||||||
{
|
{
|
||||||
|
if (!File.Exists(file.Path))
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||||
|
Console.WriteLine($"File {file.Path} does not exist, removing from list.");
|
||||||
|
Console.ResetColor();
|
||||||
|
await dbService.RemoveFileEntryAsync(file.Id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
Console.WriteLine($"Deleting file: {file.Path}");
|
Console.WriteLine($"Deleting file: {file.Path}");
|
||||||
|
try
|
||||||
|
{
|
||||||
File.Delete(file.Path);
|
File.Delete(file.Path);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
Console.WriteLine("Something went wrong while deleting the file.");
|
||||||
|
Console.WriteLine(e.Message);
|
||||||
|
Console.ResetColor();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
await dbService.RemoveFileEntryAsync(file.Id);
|
await dbService.RemoveFileEntryAsync(file.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var folder in allFolders)
|
foreach (var folder in allFolders)
|
||||||
{
|
{
|
||||||
|
if (!Directory.Exists(folder.Path))
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||||
|
Console.WriteLine($"Directory {folder.Path} does not exist, removing from list.");
|
||||||
|
Console.ResetColor();
|
||||||
|
await dbService.RemoveFolderEntryAsync(folder.Id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
Console.WriteLine($"Deleting directory: {folder.Path}");
|
Console.WriteLine($"Deleting directory: {folder.Path}");
|
||||||
|
try
|
||||||
|
{
|
||||||
Directory.Delete(folder.Path, true);
|
Directory.Delete(folder.Path, true);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
Console.WriteLine("Something went wrong while deleting the directory.");
|
||||||
|
Console.WriteLine(e.Message);
|
||||||
|
Console.ResetColor();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
await dbService.RemoveFolderEntryAsync(folder.Id);
|
await dbService.RemoveFolderEntryAsync(folder.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,4 +90,3 @@ namespace TBDel.Commands
|
|||||||
Console.ResetColor();
|
Console.ResetColor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@@ -44,7 +44,25 @@ namespace TBDel.Commands
|
|||||||
}
|
}
|
||||||
else if (Directory.Exists(filePath))
|
else if (Directory.Exists(filePath))
|
||||||
{
|
{
|
||||||
Directory.Delete(filePath);
|
try
|
||||||
|
{
|
||||||
|
Directory.Delete(filePath, true);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
if (e.Message.Contains("Directory not empty"))
|
||||||
|
{
|
||||||
|
Console.WriteLine("Directory is not empty. It must be empty before it can be deleted or deleted manually.");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("Something went wrong while deleting the directory.");
|
||||||
|
Console.ResetColor();
|
||||||
|
Console.WriteLine(e.Message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (await dbService.RemoveFolderEntryAsync(id))
|
if (await dbService.RemoveFolderEntryAsync(id))
|
||||||
{
|
{
|
||||||
Console.ForegroundColor = ConsoleColor.Green;
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
|
Reference in New Issue
Block a user