2009-07-16 29 views
1

Bisher hat meine Anwendung ihre Datenbanken im App-Basisverzeichnis gespeichert. Wenn es bereitgestellt wird, wird dies in Programmdateien enthalten sein, so dass ich sie dort nicht behalten kann!Wo sollte ich Datenbankdateien speichern?

Die obvoius Orte sind:

Environment.SpecialFolder.LocalApplicationData 
Environment.SpecialFolder.ApplicationData 

Ein Problem ist, dass das Herunterladen von Daten aus ununterbrochen vorwärts Aufgaben ausgeführt werden kann, so würde ich Aufgaben unter dem gleichen Benutzer ausgeführt gewährleisten müssen wurden.

Das Hauptproblem ist, dass nach ein paar Jahren diese Datenbank-Dateien insgesamt 5 bis 10 GB, so dass ich glaube, ich sollte den Benutzer eine Option nach der Installation geben, um den Speicherort der Datenbank zu wählen. Ich müsste sicherstellen, dass es beschreibbar und kein Netzwerkstandort war.

Welche Lösungen haben andere?

Antwort

0

Überprüfen des Schreibzugriffs auf ein Verzeichnis: Bisher habe ich keinen besseren Weg gefunden, als eine Datei im Verzeichnis anzulegen und sofort zu löschen. Wenn während dieser Schritte ein Fehler auftritt, haben Sie nicht genügend Privilegien. (Denken Sie daran, zuerst zu prüfen, ob auf dem Laufwerk genügend freier Speicherplatz vorhanden ist).

Ich habe einmal versucht, diese, indem Sie durch die Zugriffskontrolllisten programmatisch zu lösen, aber dann traf ich einen dir, wo ich schreiben priviliges hatte, aber nicht das Recht, die ACLs zur Liste ...

Sie überprüfen können, ob Ein gegebenes Laufwerk ist eine Netzwerkfreigabe, indem die DriveType-Eigenschaft des Objekts System.IO.DriveInfo verwendet wird. Was die Handhabung von UNC-Pfaden betrifft, muss ich noch einen besseren Weg finden als (myPath.Substring(0,2) == @"\\")

Verwandte Themen