public override void OnFileDropped(DirectoryItemViewModel file) { if (file != null && !AllItems.Contains(file)) { //Move the asset file into this folder var fileParent = file.Parent; string newFilePath = $"{FullPath}{Path.DirectorySeparatorChar}{file.Name}"; if (file is FileViewModel fileVm) { File.Move(file.FullPath, newFilePath); fileParent.RemoveItem(fileVm); AddItem(fileVm); } else if (file is FolderViewModel folderVm) { Directory.Move(file.FullPath, newFilePath); fileParent.RemoveItem(folderVm); AddItem(folderVm); } else { Debug.Assert(false, "Unknown directory item"); } file.Parent = this; } }
private void OnItemDeleted(DirectoryItemViewModel item) { if (item is FileViewModel fileVm) { RemoveItem(fileVm); Membrane.FileSystemHelpers.removeAssetFile(fileVm.AssetGuid, fileVm.AssetType); File.Delete(fileVm.FullPath); } else if (item is FolderViewModel folderVm) { RemoveItem(folderVm); RemoveAllFilesInDirectory(folderVm); Directory.Delete(folderVm.FullPath, recursive: true); } }
private void OnItemOpened(DirectoryItemViewModel item) => OnOpened?.Invoke(item);
public override void OnFileDropped(DirectoryItemViewModel file) => throw new System.InvalidOperationException("Attempting to drop a file onto another file. Operation is not supported.");