add delete directory
This commit is contained in:
@@ -12,4 +12,10 @@ public class IdeFileOperationsService(SharpIdeSolutionModificationService sharpI
|
||||
Directory.CreateDirectory(newDirectoryPath);
|
||||
var newFolder = await _sharpIdeSolutionModificationService.AddDirectory(parentFolder, newDirectoryName);
|
||||
}
|
||||
|
||||
public async Task DeleteDirectory(SharpIdeFolder folder)
|
||||
{
|
||||
Directory.Delete(folder.Path, true);
|
||||
await _sharpIdeSolutionModificationService.RemoveDirectory(folder);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,4 +17,11 @@ public class SharpIdeSolutionModificationService
|
||||
SolutionModel.AllFolders.Add(sharpIdeFolder);
|
||||
return sharpIdeFolder;
|
||||
}
|
||||
|
||||
public async Task RemoveDirectory(SharpIdeFolder folder)
|
||||
{
|
||||
var parentFolderOrProject = (IFolderOrProject)folder.Parent;
|
||||
parentFolderOrProject.Folders.Remove(folder);
|
||||
SolutionModel.AllFolders.Remove(folder);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence;
|
||||
|
||||
namespace SharpIDE.Application.Features.SolutionDiscovery;
|
||||
|
||||
public class SharpIdeFolder : ISharpIdeNode, IExpandableSharpIdeNode, IChildSharpIdeNode
|
||||
public class SharpIdeFolder : ISharpIdeNode, IExpandableSharpIdeNode, IChildSharpIdeNode, IFolderOrProject
|
||||
{
|
||||
public required IExpandableSharpIdeNode Parent { get; set; }
|
||||
public required string Path { get; set; }
|
||||
|
||||
@@ -14,6 +14,12 @@ public interface IExpandableSharpIdeNode
|
||||
{
|
||||
public bool Expanded { get; set; }
|
||||
}
|
||||
|
||||
public interface IFolderOrProject
|
||||
{
|
||||
public ObservableHashSet<SharpIdeFolder> Folders { get; init; }
|
||||
public ObservableHashSet<SharpIdeFile> Files { get; init; }
|
||||
}
|
||||
public interface IChildSharpIdeNode
|
||||
{
|
||||
public IExpandableSharpIdeNode Parent { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user