2008-08-19 11 views
0

文字列の置換操作を適用してファイルとフォルダの名前を再帰的に変更したいと思います。.NETでファイルシステムブランチの名前を変更(移動)する最も良い方法は何ですか?

など。ファイルやフォルダ内の "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.FileInfoSystem.IO.DirectoryInfoクラスのメンバーのいくつかを試していましたが、簡単な方法はありませんでした。

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

トリックはしません。

私はこの種の操作を実行するために何らかの "天才的な"方法があることを期待していました。

答えて

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" 
0
string oldPath = "\\shark.exe" 
string newPath = oldPath.Replace("shark", "orca"); 

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

は、あなた自身の完全なパスを入力してください

関連する問題