C# Klasör Kopyalama

DarkDay1923

Uzman üye
17 Ağu 2011
1,227
0
Hayırlı Ramazanlar ,

Arkadaşlar Klasör kopyalama kodunu bir türlü bulamadım. Taşı (Move) komutu işime yaramıyor kopyalamam gerekiyor klasörü ...
 

xenceri

Uzman üye
16 Ağu 2010
1,948
0
İstanbul
System.IO.File.Copy var kardeşim. Move yerine copy kullan. Ya da
System.IO.Directory.GetFiles("Klasör yolu") dersen eğer o klasördeki tüm dosyaları string bir diziye atar. Sen de ister for- ister foreach ile bu dosyaları aynı isimde yine File.Copy ile kopyalayabilirsin.
 

DarkDay1923

Uzman üye
17 Ağu 2011
1,227
0
System.IO.File.Copy var kardeşim. Move yerine copy kullan. Ya da
System.IO.Directory.GetFiles("Klasör yolu") dersen eğer o klasördeki tüm dosyaları string bir diziye atar. Sen de ister for- ister foreach ile bu dosyaları aynı isimde yine File.Copy ile kopyalayabilirsin.

Hocam C dizininden bir klasörü D klasörüne kopyalamak için bir örnek yazma şansın var mı ?
 

xenceri

Uzman üye
16 Ağu 2010
1,948
0
İstanbul
Kardeşim şu an studioda değilim kodlarda birkaç hata olabilir ama diyelim C dizininde deneme adında bir klasörün var. O zaman D ye önce o klasörü oluşturmak için
System.IO.Directory.Create("D:\deneme");
//Sonra C deki deneme klasöründe tek tek dosyaları taramak için de
string[] tumDosyalar = System.IO.Directory.GetFiles("C:\deneme");
foreach(string dosyayolu in tumDosyalar){
System.File.Copy("D:\deneme",dosyaYolu);
}
gibi bir şey işte. System.File.Copy("D:\deneme",dosyaYolu); şu kısım tam tersi de olabilir emin değilim yani belki de önce kopyalanack dosyadır sonra nereye kopyalanacağıdır. Ayrıca şu an mesela kopyalanacak yer için dosyaya bir isim vermediğimizi farkettim. Onun için de şöyle bir şey yapabilirsin.
Önce dosyaYolu değişkenini \ işaretinden Split metodu ile dizi oluşturabiliriz. Yani şöyle
String[] bol = dosyaYolu.Split('\\');
bunu yaptığın zaman mesela diyelim ki dosyanın uzantısı şöyle olsun C:\deneme\xenceri.txt
bu durum bol dizisinin 3 tane değeri olacak. Bunlar C,deneme ve xenceri.txt değerleridir. Bizim için lazım olan son değer yani dosyanın adı olan değer.
O zaman da bu değeri bir değişkene atabiliriz mesela. O da şu şekilde olur
string dosyaAdi = bol[bol.lenght-1]; //Lenght-1 bize son değeri verir yani dosya adımızı.
Şimdi artık foreach içindeki kodu şu şekilde düzenleyebilirsin
System.File.Copy("D:\deneme"+dosyaAdi,dosyaYolu);
 

xenceri

Uzman üye
16 Ağu 2010
1,948
0
İstanbul
Rica ederim kardeşim bu arada kodun tam hali şu şekilde olacak
System.IO.Directory.CreateDirectory("D:\\deneme");
string[] tumDosyalar = System.IO.Directory.GetFiles("C:\\deneme");
foreach (string dosyayolu in tumDosyalar)
{
String[] bol = dosyayolu.Split('\\');
string dosyaAdi = bol[bol.Length - 1];
System.IO.File.Copy(dosyayolu,"D:\\deneme\" + dosyaAdi);
}
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.