2013-02-14 21 views
7

.NET uygulama ayarları dosyasını kullanıcının% MyDocument% \ MyApplication klasörüne kaydetmeye çalışıyorum, ancak varolan bir klasörü \ dosya için nasıl kontrol edeceğimi bilmiyorum ve kaydetmek için klasör \ dosya ekle. Ben tüm kullanıcı bilgisayarlarda aynı yerde olmak için dosyaya ihtiyacım olduğu için bir saveFileDialog açmak istemiyorum. Şimdiye kadar sahip olduğum şey bu, ama çalışmıyor. Herhangi bir yardım takdir:Dosyamı Belgelerim'e Kaydet + Dosya Klasörü

var saveSettings = settingsList.text; //assign settings to a variable 
saveSettings = Regex.Replace(saveSettings, @"\s+", "").Trim() + Environment.NewLine; //remove any extra spaces and add a carriage return so that each setting is on a new line    

var fileName = string.Format("{0}\\{1}", Environment.SpecialFolder.MyDocuments + "\\MyApp\\", "settings.dat"); //generate path to settings.dat 
File.AppendAllText(fileName, saveSettings); //save settings.dat 
+0

Klasör için 'Directory.Exist()' yöntemine baktınız mı, yoksa tam yolu biliyorsanız, 'File.Exist()' yi kontrol edebilirsiniz. yöntem ayrıca, 'string.Replace()' yönteminde yerleşik olanı kullanabildiğiniz zaman 'RegEx.Replace'ı neden kullanıyorsunuz? ayrıca' string.Format ("{0} \\ {1}" 'da değil yolunda fazladan 2 ters eğik çizgi '\\ 'koyarak ..? – MethodMan

+0

" \ " – Jeagr

cevap

27
string path = System.IO.Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.MyDoc‌​uments),"MyApp","settings.dat"); 

if(Directory.Exists(path)) 
{ 
    //Exists 
} 
else 
{ 
    //Needs to be created 
} 
+0

CC'den kurtulmak için gereklidir ... varsayılan MyDocs dizinine giden yolu nasıl ayarlayacağınızı biliyor musunuz? Benim \ bin \ Debug \ klasörümdeki yeni bir MyDocuments klasörü yaratıyor – Jeagr

+1

@Jeagr Sanırım nedenini görüyorum, cevabımı kontrol edin –

+0

Ahh ... evet! Teşekkür ederim CC! – Jeagr

3

System.IO.Directory.CreateDirectory (Server.MapPath (yol)); // var olup olmadığını kontrol etmeniz gerekmiyor