Пример #1
0
        public void SearchByTree(FileSystem.NodeVisitCallback callback, string searchPath)
        {
            FileSystemNode searchRoot = this._root;

            if (!string.IsNullOrEmpty(searchPath))
            {
                searchRoot = this.GetFirstFile(searchPath) ?? searchRoot;
            }
            Visit(callback, searchRoot);
        }
Пример #2
0
 private void Visit(FileSystem.NodeVisitCallback callback, FileSystemNode node)
 {
     if (!callback(node, 0, 1))
     {
         return;
     }
     if (node is Folder && !(node is HiddenDataStreamFileNTFS))                //No zip support yet
     {
         foreach (FileSystemNode child in node.GetChildren())
         {
             Visit(callback, child);
         }
     }
 }
Пример #3
0
        private void SectorSearch(FileSystem.NodeVisitCallback callback)
        {
            long  clusterNum = BPB_RootClus;
            ulong progress   = 0;
            ulong total      = (ulong)(TotalSectors * SectorsPerCluster - (_rootDirLocation + BPB_RootClus * BytesPerCluster));

            while (_rootDirLocation + clusterNum * BytesPerCluster < TotalSectors * SectorsPerCluster)
            {
                progress++;
                clusterNum++;
                if (!callback(new FileFAT(this, clusterNum), progress, total))
                {
                    break;
                }
            }
        }
Пример #4
0
        private void MftScan(FileSystem.NodeVisitCallback callback)
        {
            ulong numFiles = _MFT.StreamLength / (ulong)(SectorsPerMFTRecord * BytesPerSector);

            for (ulong i = 0; i < numFiles; i++)
            {
                MFTRecord record = MFTRecord.Load(i, this, MFTLoadDepth.NameAttributeOnly);

                if (record.Valid)
                {
                    if (!callback(record, i, numFiles))
                    {
                        return;
                    }
                }
            }
        }
Пример #5
0
 public void SearchByMFT(FileSystem.NodeVisitCallback callback, string searchPath)
 {
     MftScan(callback);
 }
Пример #6
0
 public void SearchByCluster(FileSystem.NodeVisitCallback callback, string searchPath)
 {
     SectorSearch(callback);
 }
Пример #7
0
 public void Search(FileSystem.NodeVisitCallback callback)
 {
     _func(callback, null);
 }
Пример #8
0
 public void Search(FileSystem.NodeVisitCallback callback, string searchPath)
 {
     _func(callback, searchPath);
 }