1

FindFirst/FindNext が遅い。デフラグラーのようなプログラムがこのリストをすばやく収集できるようです。使用する Windows API は?

4

2 に答える 2

0

あなたは「FindFirst/FindNext」が遅いと言っています。実行に関しては、_findfirst()、_findnext()、_findclose() #include <io.h> が最高に速いと思います。

非常に長いパス名が必要な場合は、Windows API バージョンを使用する必要があります。

Windows API は FindFirstFile()、FindNextFile()、および FindClose() で、ヘッダー ファイルは #include <windows.h> です。

Windows API のドキュメントには、ディレクトリ文字列の先頭に「\?\」を追加して、可能な最大パス長を取得する方法が説明されています。

C ライブラリ関数よりも多くの情報が必要な場合は、Windows API の FindFirstFileEx()、FindNextFileEx()、FindClose() を使用する必要があります。

詳細については、ドキュメントを参照する必要があります。

最も単純な C ライブラリ、_findfirst(): https://msdn.microsoft.com/en-us/library/zyzxfzac.aspx

返される詳細情報、パスの最大長、Windows API FindFirstFile(): https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx

返される最大情報、最大パス長、Windows API FindFirstFileEx(): https://msdn.microsoft.com/en-us/library/windows/desktop/aa364419(v=vs.85).aspx

リンクが無効になっている場合は、おそらく「C Language _findfirst()」などで検索できます。

于 2015-02-13T03:29:29.147 に答える
-1

Defragglerについてはよくわかりません。ただし、PowerShellを使用することはできます

Windows XPシステムを使用している場合は、ダウンロードしてインストールする必要があります

PowerShellを使用すると、簡単なクエリを実行できます

例えば:

$foo = Get-childItem -Path "c:\windows"

PowerShellでは、これにより、Windowsディレクトリ内のすべてのファイル名が$fooという配列に配置されます。

次に、さらに進んで配列を取得し、ファイルにパイプすることができます

$foo >> c:\temp\test.txt

出力例:

    モードLastWrite時間の長さの名前                                       
---- ------------- ------ ----      
d----2009年7月14日1:32AMWeb                                        
d----2012年5月9日3:20AMwinsxs                                     
-a---2012年2月3日午後1時1分16896AsTaskSched.dll                            
-a---2011年4月6日12:46AM32200 atiogl.xml                                 
-a---2012年2月3日12:35PM0 ativpsrm.bin                               
-a --- 11/20/2010 10:24 PM 71168 bfsvc.exe                                  
-a--s2012年5月24日午後10時17分67584bootstat.dat                               
-a---2012年3月21日午後11時58分1908diagerr.xml                                
-a---2012年3月21日午後11時58分1908diagwrn.xml                                
-a---2012年5月4日午後6時19分28406DirectX.log    

PowerShellチェックアウトの詳細については

http://technet.microsoft.com/en-us/library/bb978526.aspx

于 2012-05-25T02:59:28.497 に答える