2008-08-19 12 views
0

Dize değiştirme işlemi uygulayarak dosya ve klasörleri tekrar tekrar adlandırmak istiyorum..NET'te dosya sistemi dallarını yeniden adlandırmanın (taşımanın) en iyi yolu nedir?

E.g. Dosya ve klasörlerdeki "köpekbalığı" kelimesi "orca" kelimesiyle değiştirilmelidir. yanı her klasör seviyesinde her alt nesneye uygulanan elbette olmalıdır

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

aynı operasyonda:

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

taşınmalıdır.

System.IO.FileInfo ve System.IO.DirectoryInfo sınıflarının bazı üyelerini denedim, ancak bunu yapmanın kolay bir yolunu bulamadım.

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

Hile yapmıyor.

Bu tür bir operasyonu gerçekleştirmenin bir çeşit “deha” yolu olduğunu umuyorum.

cevap

1

Böylece özyinelemeyi kullanırsınız. İşte C# dönüştürmek kolay olmalı bir Powershell örnektir:

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); 

Kendi tam yolları ile doldurun

İlgili konular