ntfs-mft

    0熱度

    1回答

    我正在一個項目中工作,在這個項目中,我必須枚舉驅動器中的文件名。我嘗試了兩種方法 MFT解析和 用多用FindFirstFile線程。我比較了這兩種實現的執行時間,並且它顯示的執行時間越短,MFT的執行速度就越快,如果MFT的大小超過了GB,則需要更多時間才能執行。 我的意見是: 卷C:MFT 1.85 GB EXE時間:65秒以上的線程核心量:9秒 卷d:MFT大小:38 MB的exe時間:0.

    5熱度

    1回答

    在我的C#應用​​程序中,我已經有一種方法來檢查文件系統,但是我想利用從主文件表(MFT)讀取的優勢,因爲它速度快得多。我明白1)它是專有規範,因此如有更改,恕不另行通知; 2)只有當應用程序在管理權限下運行時纔可以訪問。 我設法通過this code讀取主文件表。從MFT查詢中,我得到一個文件名和一個所謂的文件引用號。我無法找到的是如何轉換爲.NET FileInfo對象,甚至轉換爲Window

    1熱度

    1回答

    我一直致力於從MFT檢索文件信息。我看到MFT記錄有關於標準信息,文件名,數據和其他一些屬性的信息。我試着解析MFT記錄以獲取它包含的所有細節。我能夠獲取所有文件的文件名,數據(包括備用數據流的數據),但我無法獲取指定備用數據流的文件名。爲了測試目的,我創建了一個包含兩個包含數據的備用流的文件。當我解析對應於該文件的MFT記錄時,我無法識別備用流名稱。這是否意味着備用流名稱不存儲在MFT中?那麼一

    0熱度

    1回答

    編寫解析器文件系統NTFS。我需要持續閱讀目錄並顯示有關所選目錄內容的信息,這隻需要閱讀有關文件和子目錄的信息的MFT記錄。問題:如何組織它? MFT中是否有任何內容記錄了其他MFT記錄文件和子目錄的鏈接列表?

    0熱度

    1回答

    我正在玩MFT,通過使用P/Invoke調用讀取C:驅動器的根目錄開始。使用下面的代碼,如果緩衝區大小是512的倍數,我會得到預期的結果,否則讀取將失敗並顯示ERROR_INVALID_PARAMETER。這是否與羣集大小有關?這似乎不太可能,因爲我擁有4k字節的簇大小。顯然,我可以使用512的倍數,但在我看來,這可能不是可移植的,當然我想明白爲什麼會這樣。 public void Test()

    0熱度

    1回答

    我開始研究文件系統,特別是FAT *和NTFS。 在FAT文件系統羣集中可能是數據或目錄羣集,並且始終知道根目錄的起始羣集編號,因爲在FAT32之前它已在格式化時間固定,並且在擴展BIOS中找到FAT32阻止引導扇區。 NTFS在另一方面組織主文件表下的所有內容,併爲系統中的每個文件和目錄提供MFT記錄。 主文件表的第一個第27個位置標記爲保留,第一個索引由$ MFT記錄組成,該記錄描述了MFT本

    0熱度

    1回答

    我想知道是否處處找到FF FF FF FF它表示一個MFT塊。因爲here他們說: 你可以很清楚地看到文件標記的0xFFFFFFFF的結束將標記 新的MFT項的末尾(字節偏移量504)。

    0熱度

    1回答

    爲了縮短冗長的故事:我克隆了一個損壞的NTFS硬盤(損壞的$ MFT根條目)並啓動到我的本機窗口中以執行chkdsk運行。 在啓動時,Windows執行了不需要的chkdsk運行。 chkdsk運行通過相當成功。不幸的是,chkdsk日誌似乎不完整。 get-winevent -FilterHashTable @{logname="Application"; id="1001"}| ?{$_.pr

    0熱度

    2回答

    假設可以實際打開和讀取NTFS捲上的目錄。但是,我的代碼嘗試這是不工作,所以我試圖谷歌,它發現我this。 這裏的關鍵觀察似乎是您必須使用FILE_FLAG_BACKUP_SEMANTICS。所以,調整下來,我基本上得到: HANDLE hFile = CreateFile(L"C:\\temp", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXIST

    0熱度

    1回答

    我想將大文件分割成小文件而不復制文件的一部分,並且不使用文件流或使用它的函數(如果可能的話)。 試想一下,我們這是由3個文件,大文件: [[File1bytes][File2bytes][File3bytes]] 在我看來,我們可以通過以下步驟做到這一點: 使用SetEndOfFile函數截斷最後的字節文件([File3bytes]在我們的例子) 不知怎的,迫使我們的文件系統來識別那些截字節(