0

文字列置換操作を適用して、ファイルとフォルダの名前を再帰的に変更したいと思います。

たとえば、ファイルやフォルダ内の「shark」という単語は、「orca」という単語に置き換える必要があります。

C:\Program Files\Shark Tools\Wire Shark\Sharky 10\Shark.exe

次の場所に移動する必要があります:

C:\Program Files\Orca Tools\Wire Orca\Orcay 10\Orca.exe

もちろん、同じ操作を各フォルダレベルの各子オブジェクトにも適用する必要があります。

System.IO.FileInfoとクラスのメンバーの何人かで実験していSystem.IO.DirectoryInfoましたが、それを行う簡単な方法が見つかりませんでした。

fi.MoveTo(fi.FullName.Replace("shark", "orca"));

トリックをしません。

この種の操作を実行するためのある種の「天才」的な方法があることを望んでいました。

4

2 に答える 2

1

したがって、再帰を使用します。C# に簡単に変換できるはずの PowerShell の例を次に示します。

function Move-Stuff($folder)
{
    foreach($sub in [System.IO.Directory]::GetDirectories($folder))
      {
        Move-Stuff $sub
    }
    $new = $folder.Replace("Shark", "Orca")
    if(!(Test-Path($new)))
    {
        new-item -path $new -type directory
    }
    foreach($file in [System.IO.Directory]::GetFiles($folder))
    {
        $new = $file.Replace("Shark", "Orca")
        move-item $file $new
    }
}

Move-Stuff "C:\Temp\Test"
于 2008-08-19T21:46:09.693 に答える
0
string oldPath = "\\shark.exe"
string newPath = oldPath.Replace("shark", "orca");

System.IO.File.Move(oldPath, newPath);

独自のフルパスを入力してください

于 2008-08-19T22:00:15.903 に答える