Exemple #1
0
        void CollectNestedItems(FolderItem parentItem, CancellationToken cancellationToken)
        {
            if (parentItem == null || parentItem.IsFile)
            {
                return;
            }
            if (cancellationToken.IsCancellationRequested)
            {
                return;
            }
            (parentItem as FolderItem).IsProcessing = true;
            var parentPath = parentItem.GetPath();

            if (string.IsNullOrEmpty(parentPath))
            {
                return;
            }
            parentItem.AddChildrenRange(ProcessContent(fileSystemProvider.GetDirectoryContent(parentPath), cancellationToken));
            if (cancellationToken.IsCancellationRequested)
            {
                return;
            }
            parentItem.IsProcessing = false;
            if (!parentItem.HasChildren)
            {
                parentItem.UpdateIsValid(true);
            }
            OnFileSystemItemProcessed(parentItem);
        }