



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第C#實現快速查詢文件的方法相信使用過Everything的人都對其超快的搜索速度印象非常深刻,它的主要原理是通過掃描NTFS磁盤的USNJournal讀取的文件列表,而不是磁盤目錄,由于USNJournal非常小,因此能實現快速搜索。
由于.Net程序的Dll基本上是通用的,在C#中也可以直接使用它。
publicclassMFTScanner
privatestaticIntPtrINVALID_HANDLE_VALUE=newIntPtr(-1);
privateconstuintGENERIC_READ=0x80000000;
privateconstintFILE_SHARE_READ=0x1;
privateconstintFILE_SHARE_WRITE=0x2;
privateconstintOPEN_EXISTING=3;
privateconstintFILE_READ_ATTRIBUTES=0x80;
privateconstintFILE_NAME_IINFORMATION=9;
privateconstintFILE_FLAG_BACKUP_SEMANTICS=0x2000000;
privateconstintFILE_OPEN_FOR_BACKUP_INTENT=0x4000;
privateconstintFILE_OPEN_BY_FILE_ID=0x2000;
privateconstintFILE_OPEN=0x1;
privateconstintOBJ_CASE_INSENSITIVE=0x40;
privateconstintFSCTL_ENUM_USN_DATA=0x900b3;
[StructLayout(LayoutKind.Sequential)]
privatestructMFT_ENUM_DATA
publiclongStartFileReferenceNumber;
publiclongLowUsn;
publiclongHighUsn;
[StructLayout(LayoutKind.Sequential)]
privatestructUSN_RECORD
publicintRecordLength;
publicshortMajorVersion;
publicshortMinorVersion;
publiclongFileReferenceNumber;
publiclongParentFileReferenceNumber;
publiclongUsn;
publiclongTimeStamp;
publicintReason;
publicintSourceInfo;
publicintSecurityId;
publicFileAttributesFileAttributes;
publicshortFileNameLength;
publicshortFileNameOffset;
[StructLayout(LayoutKind.Sequential)]
privatestructIO_STATUS_BLOCK
publicintStatus;
publicintInformation;
[StructLayout(LayoutKind.Sequential)]
privatestructUNICODE_STRING
publicshortLength;
publicshortMaximumLength;
publicIntPtrBuffer;
[StructLayout(LayoutKind.Sequential)]
privatestructOBJECT_ATTRIBUTES
publicintLength;
publicIntPtrRootDirectory;
publicIntPtrObjectName;
publicintAttributes;
publicintSecurityDescriptor;
publicintSecurityQualityOfService;
////MFT_ENUM_DATA
[DllImport("kernel32.dll",ExactSpelling=true,SetLastError=true,CharSet=CharSet.Auto)]
privatestaticexternboolDeviceIoControl(IntPtrhDevice,intdwIoControlCode,refMFT_ENUM_DATAlpInBuffer,intnInBufferSize,IntPtrlpOutBuffer,intnOutBufferSize,refintlpBytesReturned,IntPtrlpOverlapped);
[DllImport("kernel32.dll",SetLastError=true,CharSet=CharSet.Auto)]
privatestaticexternIntPtrCreateFile(stringlpFileName,uintdwDesiredAccess,intdwShareMode,IntPtrlpSecurityAttributes,intdwCreationDisposition,intdwFlagsAndAttributes,IntPtrhTemplateFile);
[DllImport("kernel32.dll",ExactSpelling=true,SetLastError=true,CharSet=CharSet.Auto)]
privatestaticexternInt32CloseHandle(IntPtrlpObject);
[DllImport("ntdll.dll",ExactSpelling=true,SetLastError=true,CharSet=CharSet.Auto)]
privatestaticexternintNtCreateFile(refIntPtrFileHandle,intDesiredAccess,refOBJECT_ATTRIBUTESObjectAttributes,refIO_STATUS_BLOCKIoStatusBlock,intAllocationSize,intFileAttribs,intSharedAccess,intCreationDisposition,intCreateOptions,intEaBuffer,
intEaLength);
[DllImport("ntdll.dll",ExactSpelling=true,SetLastError=true,CharSet=CharSet.Auto)]
privatestaticexternintNtQueryInformationFile(IntPtrFileHandle,refIO_STATUS_BLOCKIoStatusBlock,IntPtrFileInformation,intLength,intFileInformationClass);
privateIntPtrm_hCJ;
privateIntPtrm_Buffer;
privateintm_BufferSize;
privatestringm_DriveLetter;
privateclassFSNode
publiclongFRN;
publiclongParentFRN;
publicstringFileName;
publicboolIsFile;
publicFSNode(longlFRN,longlParentFSN,stringsFileName,boolbIsFile)
FRN=lFRN;
ParentFRN=lParentFSN;
FileName=sFileName;
IsFile=bIsFile;
privateIntPtrOpenVolume(stringszDriveLetter)
IntPtrhCJ=default(IntPtr);
/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 能源審計在制漿造紙行業節能改造中的應用考核試卷
- 租賃市場消費者行為研究考核試卷
- 清潔生產技術在化妝品企業品牌戰略中的應用考核試卷
- 光纖網絡運維管理體系建設考核試卷
- 部編道德與法治七年級上冊第一單元成長的節拍測試卷
- 2025年中國GRC素線數據監測報告
- 2025年中國COD排放總量在線監測儀數據監測研究報告
- 2025年中國30對旋卡式電纜分線盒數據監測研究報告
- 2025至2030年中國鑄鋼鐵合頁市場分析及競爭策略研究報告
- 2025至2030年中國重力式貨架鋼木托盤市場分析及競爭策略研究報告
- 建材公司成立策劃方案
- 肢體離斷傷的護理
- 電子審圖系統行業深度研究分析報告(2024-2030版)
- 小學出入庫管理制度
- 2025年中國高壓電源供應器行業市場調查、投資前景及策略咨詢報告
- 2024年中國黑龍江省農藥市場調查報告
- 注塑廠薪資管理制度
- 2025-2030年中國黑膠唱片行業市場現狀供需分析及投資評估規劃分析研究報告
- LINE6效果器HD300中文說明書
- 可編程控制技術課件
- 【邵陽】2024年湖南邵陽新邵縣事業單位招聘工作人員44人筆試附帶答案詳解
評論
0/150
提交評論