C# Setcurrentdirectory ve getcurrentdirectory kullanımı

ahmet5847 (92) 6 yıl önce sordu

c# ta directory sınıfı ile klasör işlemleri yapabiliyoruz bu sınıf içerinde getcurrentdirectory ve setcurrentdirectory methodları var getcurrent uygulamanın çalıştığı exe nin yolunu veriyor setcurrentdirectory ise bu yolu değiştirmek istediğimzde kullanıyoruz eğer hatam varsa lütfen düzeltinde setcurrentdirectorynin tam olarak ne yaptığını ve ne amaçla yapıldığını anlatabilecek var mı ?

Toplam 1 cevap


alattin (17125) 6 yıl önce cevapladı

Directory.SetCurrentDirectory Uygulamanın geçerli çalışma dizinini belirler. Örneğin uygulaman C:\Program Files\Dizin1 klasöründe yüklü ve buradan çalışıyor. Sen SetCurrentDirectory metodunu çağırır ve buna Dizin2 değerini atarsan artık Directory.GetCurrentDirectory() metodunu kullandığında sana Dizin2 değeri döner.

Niye Directory.SetCurrentDirectory kullanılır dersen, örneğin şöyle bir senaryoda işine yarar: Uygulamanın kurulu olduğu klasör dışında başka bir klasörde işlem yapıyorsan bir defa Directory.SetCurrentDirectory  diyerek geçerli klasörünü değiştiribilir ve sonrasında Directory.GetCurrentDirectory() metodu ile bu klasörde işlem yapabilirsin.

Örneğin resim düzenleme yazılımı geliştirdin. Adı ResimDuzenleyici olsun. Programın C:\Program Files\ResimDuzenleyici altına yüklü. Sen resimlerin bir kopyasını C:\Temp\ResimDuzenleyici klasörüne kopyalayıp orada çeşitli işlemler yapmak istiyorsun. SetCurrentDirectory ile çalışma klasörünü değiştirebilir ve daha sonra GetCurrentDirectory()  ile bu klasörün yolunu kolayca alabilirsin.

ahmet5847 6 yıl önce

Allah razı olsun.. Kolay gelsin

ahmet5847 6 yıl önce

Peki şey diyeceğim ilk paragraftaki dizin1 iken Directory.setcurrentdirectory ile dizin 2 aldığımzda geçerli klasör orası mı olur ? bu şey gibi birşey mi mesela tarayacıdan indirdiğimiz şeyler indirilenler klasörüne gider setcurrent ile bunu değiştirip başka bir klasöre atabilirmiyiz gibi ? @alattin

alattin 6 yıl önce

@ahmet5847 setcurrentdirectory geçerli uygulama dizinini değiştiriyor, İndirilen klasörü ile ilgili verdiğin örnek yapılabilir. Evet başka bir klasöre kaydedebilirsin ama bunun için illa setcurrentdirectory kullanmak zorunda değilsin.