Ejemplo n.º 1
0
        void ProcessCreation(FolderItem parentItem, FileSystemChangeEventArgs change)
        {
            var path = change.Path;

            if (fileSystemProvider.FileExists(path))
            {
                var fileInfo = fileSystemProvider.GetFileInfo(path);
                if (fileInfo == null)
                {
                    return;
                }
                var fileItem = new FileItem(change.Name, fileInfo.Item2);
                if (parentItem.FindChildren(fileItem.DisplayName) != null)
                {
                    return;
                }
                parentItem.AddChildren(fileItem);
                OnFileSystemItemAdded(parentItem, fileItem);
            }
            else if (fileSystemProvider.DirectoryExists(path))
            {
                var folderItem = new FolderItem(change.Name);
                if (parentItem.FindChildren(folderItem.DisplayName) != null)
                {
                    return;
                }
                parentItem.AddChildren(folderItem);
                folderItem.PropertyChanged += ehPropertyChanged;
                AddFolderToScan(folderItem);
                OnFileSystemItemAdded(parentItem, folderItem);
            }
        }
Ejemplo n.º 2
0
        public void NestedFolderRemoveSetSizeStructureTest()
        {
            var folder1 = new FolderItem(@"C:\1");
            var folder2 = new FolderItem("1");

            Assert.IsFalse(folder1.IsValid);
            Assert.IsFalse(folder2.IsValid);
            Assert.AreEqual(0, folder1.Size);
            Assert.AreEqual(0, folder2.Size);
            var file1_1 = new FileItem("1.txt", 1);
            var file2_1 = new FileItem("1.txt", 2);

            folder1.AddChildren(folder2);
            folder1.AddChildren(file1_1);
            Assert.AreEqual(2, folder1.Children.Count());
            Assert.AreEqual(folder1, file1_1.Parent);
            Assert.AreEqual(1, folder1.Size);
            Assert.IsFalse(folder1.IsValid);
            folder2.AddChildren(file2_1);
            Assert.AreEqual(folder2, file2_1.Parent);
            Assert.AreEqual(2, folder2.Size);
            Assert.IsTrue(folder2.IsValid);
            Assert.IsTrue(folder1.IsValid);
            Assert.AreEqual(3, folder1.Size);
            folder1.RenameChildren("1.txt", @"C:\1\1.txt", "new.txt", @"C:\1\new.txt");
            var foundFile = folder1.FindChildren("1.txt");

            Assert.IsNull(foundFile);
            foundFile = folder1.FindChildren("new.txt");
            Assert.IsNotNull(foundFile);
            foundFile.SetSize(100);
            Assert.AreEqual(100, foundFile.Size);
            Assert.AreEqual(102, folder1.Size);
        }
Ejemplo n.º 3
0
        public void NestedFolderFindRemoveStructureTest()
        {
            var folder1 = new FolderItem(@"C:\1");
            var folder2 = new FolderItem("1");

            Assert.IsFalse(folder1.IsValid);
            Assert.IsFalse(folder2.IsValid);
            Assert.AreEqual(0, folder1.Size);
            Assert.AreEqual(0, folder2.Size);
            var file1_1 = new FileItem("1.txt", 1);
            var file2_1 = new FileItem("1.txt", 2);

            folder1.AddChildren(folder2);
            folder1.AddChildren(file1_1);
            Assert.AreEqual(2, folder1.Children.Count());
            Assert.AreEqual(folder1, file1_1.Parent);
            Assert.AreEqual(1, folder1.Size);
            Assert.IsFalse(folder1.IsValid);
            folder2.AddChildren(file2_1);
            Assert.AreEqual(folder2, file2_1.Parent);
            Assert.AreEqual(2, folder2.Size);
            Assert.IsTrue(folder2.IsValid);
            Assert.IsTrue(folder1.IsValid);
            Assert.AreEqual(3, folder1.Size);
            var foundFolder = folder1.FindChildren("1");

            Assert.AreEqual(folder2, foundFolder);
            var foundFile = folder1.FindChildren("1.txt");

            Assert.AreEqual(file1_1, foundFile);
            folder1.RemoveChildren("1");
            Assert.AreEqual(1, folder1.Size);
            folder1.RemoveChildren("1.txt");
            Assert.AreEqual(0, folder1.Size);
        }
Ejemplo n.º 4
0
        void ProcessChange(FolderItem parentItem, string path, string name)
        {
            if (!fileSystemProvider.FileExists(path))
            {
                return;
            }
            var fileInfo = fileSystemProvider.GetFileInfo(path);

            if (fileInfo == null)
            {
                return;
            }
            var fileItem = parentItem.FindChildren(name);

            if (fileItem == null)
            {
                return;
            }
            if (fileItem.Size != fileInfo.Item2)
            {
                fileItem.SetSize(fileInfo.Item2);
            }
        }