2013-05-11 20 views
11

Cóż, nie wiem jak napisać to wszystko, więc proszę o mnie proszę.Jak utworzyć folder appdata z C#

To jest poza mną, wciąż jestem newb w C#. Zasadniczo muszę utworzyć folder w danych aplikacji mobilnej bieżącego użytkownika, który uruchamia program. Potrzebuję również uzyskać dostęp do innego folderu w sekcji danych aplikacji, a następnie zastąpić plik kopią pliku w folderze danych aplikacji, który utworzyłem.

Odpowiedz

34

Pierwsze dwa przebiegi są proste

// The folder for the roaming current user 
string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

// Combine the base folder with your specific folder.... 
string specificFolder = Path.Combine(folder, "YourSpecificFolder"); 

// CreateDirectory will check if folder exists and, if not, create it. 
// If folder exists then CreateDirectory will do nothing. 
Directory.CreateDirectory(specificFolder); 

W ostatnim podaniu nie jest jasne, gdzie masz plik do skopiowania.
Jednak zakładając, że masz plik o nazwie

string file = @"C:\program files\myapp\file.txt"; 
File.Copy(file. Path.Combine(specificFolder, Path.GetFileName(file)); 

MSDN linki:

Path class
Environment.SpecialFolder enum
File.Copy method

+0

Przepraszam za podwójny wpis ... Dobra, dziękuję Steve. Teraz, gdy wiem, że to jest możliwe, pozwól, że będę bardziej konkretny. Potrzebuję go tylko raz. Robię więc ekran ładowania, który sprawdzi wszystkie wymagane rzeczy, takie jak folder appdata i tym podobne. Potrzebuję go do sprawdzenia, a jeśli folder został utworzony, przejdzie. Jeśli nie, stworzy go. Wiem, że to będzie automatyczne. Więc. Tak. Ponadto plik, który można skopiować i zastąpić, znajduje się w folderze aplikacji. Ponadto potrzebowałbym zmienić nazwę pliku, który kopiuję. Nazwa musi być taka sama. –

+0

OK Dodałem czek dla CreateDirectory. W przypadku części do kopiowania plików, musisz podać przykład, jak plik do skopiowania ma nazwę, jak chcesz zmienić nazwę i gdzie się znajduje. Co masz na myśli mówiąc o "folderze aplikacji"? – Steve

+0

Okay najłatwiejszym przykładem, jaki mogę wymyślić, jest Minecraft. A więc minecraft.jar znajduje się w appdata .minecraft/bin/minecraft.jar. Powiedzmy, że chcę zamienić ten plik minecraft.jar na mój, ale co jeśli mój nazywa się _minecraft.jar, to nie zadziała. Potrzebuję, żeby zmienił nazwę pliku. Kopiuje plik appdata/.myfolder/_minecraft.jar i zmienia nazwę i zastępuje appdata/.minecraft/bin/minecraft.jar. Czy to ma sens? –

1

Proponuję do korzystania Isolated Storage nie dbając gdzie pliki są fizycznie usytuowany. Jest to bardziej elastyczny sposób - wystarczy skorzystać z izolowanego interfejsu API Storage, a struktura .NET jest odpowiedzialna za lokalizację plików fizycznych (na przykład w różnych lokalizacjach systemów operacyjnych może być inna).

Powiązane problemy