この質問はPowerShell の拡張です。既存のファイルを検索すると空の出力が生成されます。
AlphaFS で長いファイル パス名をキャプチャするのに問題があります。関連する AlphaFS の質問を見てきましたが、それらが私の問題にどのように対処しているかわかりません: 以下のコードは、260 文字を超えるパスを持つファイルを含め、$source ディレクトリ内のファイルを .csv にキャプチャすることを目的としています。ただし、TestFileLocations.csv で取得した出力は、次の 1 行で構成されています。
IsReadOnly|"IsFixedSize"|"IsSynchronized"|"Keys"|"Values"|"SyncRoot"|"Count"
125060 行が続きます。
False|"False"|"False"|"System.Collections.Hashtable+KeyCollection"|"System.Collections.Hashtable+ValueCollection"|"System.Object"|"1"
PS コード
[System.Reflection.Assembly]::LoadFrom('C:\AlphaFS\AlphaFS\lib\net35\AlphaFS.dll')
$searchFiles = Import-CSV 'C:\Data\SCRIPTS\PS1\TestFindFile.csv' -Header ("Name")
$source = 'C:\Data\Scripts'
$outputPath = 'c:\data\scripts\ps1\TestFileLocation.csv'
$searchFiles | ForEach-Object {
$files = [Alphaleonis.Win32.Filesystem.Directory]::EnumerateFileSystemEntries($source,'*',[System.IO.SearchOption]::AllDirectories)
$files | ForEach-Object { [PSCustomObject] @{FileName = $_} }
} | export-csv -notypeinformation -delimiter '|' -path $outputPath
私の TestFindFile.csv には、コードによって検出される必要がある 3 つの既存のファイルに関連する 4 行しか含まれていません。最後のファイルには 262 文字あります。
Name
123.pdf
321.pdf
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt
私は Windows 7 を使用しています。