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);
Beispiel #4
0
 public override void OnFileDropped(DirectoryItemViewModel file) => throw new System.InvalidOperationException("Attempting to drop a file onto another file. Operation is not supported.");