public bool RenameDirectory(int directoryId, string newDirectoryName)
        {
            if (!IsValidDirectoryName(newDirectoryName))
            {
                return(false);
            }

            StorageDirectory storageDirectory = _directories.FirstOrDefault(d => d.Id == directoryId);

            if (storageDirectory == null)
            {
                return(false);
            }

            storageDirectory.DirectoryName = newDirectoryName;

            if (DirectoryStructureChanged != null)
            {
                DirectoryStructureChanged.Invoke(this,
                                                 new StorageDirectorySystemEventArgs {
                    DirectoryEventType = StorageFileSystemEventTypes.Renamed, DirectoryId = directoryId, ParentDirectoryId = storageDirectory.ParentId
                });
            }

            return(true);
        }
예제 #2
0
        public bool DeleteDirectory(int directoryId)
        {
            StorageDirectory storageDirectory = _directories.FirstOrDefault(d => d.Id == directoryId);

            if (storageDirectory == null)
            {
                return(false);
            }

            _directories.Remove(storageDirectory);
            _directoryIdSet.Remove(storageDirectory.Id);

            DirectoryStructureChanged?.Invoke(this,
                                              new StorageDirectorySystemEventArgs {
                DirectoryEventType = StorageFileSystemEventTypes.Deleted, DirectoryId = directoryId, ParentDirectoryId = storageDirectory.ParentId
            });

            return(true);
        }
예제 #3
0
        public int CreateDirectory(StorageDirectory parentDirectory, string directoryName)
        {
            var storageDirectory = new StorageDirectory
            {
                Id            = _nextDirectoryId++,
                ParentId      = parentDirectory.Id,
                DirectoryName = directoryName,
                CreateDate    = DateTime.Now,
                ModifiedDate  = DateTime.Now
            };

            _directories.Add(storageDirectory);
            _directoryIdSet.Add(storageDirectory.Id);

            DirectoryStructureChanged?.Invoke(this,
                                              new StorageDirectorySystemEventArgs {
                DirectoryEventType = StorageFileSystemEventTypes.Created, DirectoryId = storageDirectory.Id, ParentDirectoryId = storageDirectory.ParentId
            });

            return(storageDirectory.Id);
        }