2013-02-14 26 views
7

Próbuję zapisać plik moje ustawienia aplikacji .NET do folderu% MyDocument% \ MyApplication użytkownika, ale nie wiem jak sprawdzić dla istniejącego pliku folderze \ i utwórz lub dopisz folder \ plik przy zapisie. Nie chcę otwierać saveFileDialog, ponieważ potrzebuję, aby plik znajdował się w tym samym miejscu na wszystkich komputerach użytkowników. To jest to, co do tej pory miałem, ale to nie działa. Pomocy byłoby zrozumiałe:Zapisz plik na MyDocuments + App Folder

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

Czy spojrzał na 'Directory.Exist() metody dla folderu lub jeśli wiesz pełną ścieżkę można sprawdzić' File.Exist() ' metoda również dlaczego używasz 'RegEx.Replace' kiedy możesz użyć wbudowanej' string.Replace() 'metody .. również twój' string.Format ("{0} \\ {1}" 'nie jest tym wprowadzenie dodatkowej 2 backslashes' \\ 'na swojej drodze ..? – MethodMan

+0

z„\\”jest potrzebne do ucieczki„\” – Jeagr

Odpowiedz

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 ... czy wiesz, jak ustawić ścieżkę do domyślnego katalogu mydocs? Mój build tworzy nowy folder MyDocuments w folderze \ bin \ Debug \ – Jeagr

+1

@Jeagr Myślę, że rozumiem dlaczego, sprawdź moją odpowiedź –

+0

Ahh ... tak! Dziękuję CC! – Jeagr

3

System.IO.Directory.CreateDirectory (Server.MapPath (ścieżka)); // nie ma potrzeby, aby sprawdzić, czy istnieje pierwszy