Laden...

Dateiverwaltung innerhalb der Anwendung (Konzeptuelle Frage)

Erstellt von IgG vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.691 Views
I
IgG Themenstarter:in
111 Beiträge seit 2006
vor 16 Jahren
Dateiverwaltung innerhalb der Anwendung (Konzeptuelle Frage)

In meiner Anwendung arbeiten Benutzer mit Dateien, die nur innerhalb der Anwendung benötigt werden (Powerpointpräsentationen usw.), d.h. sie werden von anderen Anwendungen nicht verwendet.

Nun bin ich gerade am rätseln, wie man das korrekt angeht.

Bisher habe ich für anwendungsspezifische Daten immer den IsolatedStorage verwendet. Allerdings stehen wir da nur sehr wenig Funktionen zur Verfügung. Gerade sowas wie Verzeichnisse innerhalb des Storages zu kopieren müssen mühsam nachimplementiert werden - daher vermute ich, es ist für meinen Anwendungsfall die falsche Lösung.

Welche Klassen/Objekte sollte man in diesem Fall verwenden?

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo IgG,

warum arbeitest du nicht direkt mit den Dateien? Also z.B. mit der FileStream-Klassen?

herbivore

I
IgG Themenstarter:in
111 Beiträge seit 2006
vor 16 Jahren

Ich kann sie ja nicht einfach irgendwohin schreiben (man muss ja stets das Vista Sicherheitsmodell im Hinterkopf haben). Ich suche daher einen benutzerspezifischen Speicherort, in dem ich ganz normal mit Dateien und Verzeichnissen arbeiten kann.

1.274 Beiträge seit 2005
vor 16 Jahren

Wie wäre es mit Eigene Dateien, mach ein Verzeichnis für deine Anwendung?

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein

I
IgG Themenstarter:in
111 Beiträge seit 2006
vor 16 Jahren

@LastGentleman: Gibts dafür ein Standardzugriffsverfahren? Directory.Create("C:\Dokumente und Einstellungen"...) wäre vermutlich der falsche Weg 😉

V
280 Beiträge seit 2007
vor 16 Jahren

ja.


string myAppData = Environment.GetSpecialFolderPath(Environment.SpecialFolder.AppData) + "\\MyApplication";

I
IgG Themenstarter:in
111 Beiträge seit 2006
vor 16 Jahren

Vielen Dank für Eure Hilfe!

Falls mal jemand später auf den Thread stößt, der richtige Befehl für das Userfolder ist:


Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

Im Anwendungsfall:


static internal string userSpecificAppFolder = string.Format("{0}{1}{2}",Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Path.DirectorySeparatorChar, mySettings.ApplicationName);

(in mySettings.ApplicationName wird der Name, z.B. "Meine Anwendung" gespeichert).

4.221 Beiträge seit 2005
vor 16 Jahren

@IgG

Kannst Du Dein Beispiel noch so anpassen, dass es Path.Combine verwendet ?

Gruss
Programmierhans

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...