Will man von seiner Anwendung auf Daten auf der Speicherkarte zugreifen, sollte man den Pfad nicht fest verdrahten, denn je nach verwendeter Sprachversion des PDAs, kann der Ordner anders heißen, mal "Speicherkarte", mal "Storage Card" usw.
Mit nachfolgendem Code lässt sich sich der Name ermitteln:
DirectoryInfo rootDir = new DirectoryInfo(@"\");
FileAttributes attrStorageCard = FileAttributes.Directory | FileAttributes.Temporary;
foreach (FileSystemInfo fsi in rootDir.GetFileSystemInfos())
{
if ((fsi.Attributes & attrStorageCard) == attrStorageCard)
{
databasePath = fsi.FullName;
break;
}
}
Update
Ja, die Frage ist berechtigt. Also erweitern wir das Ganze darum, nach dem Zielordner auf der Speicherkarte zu suchen. Es wird also nicht "die erstbeste Karte" genommen, sondern nur die, auf der das Verzeichnis wirklich drauf ist.
DirectoryInfo rootDir = new DirectoryInfo(@"\");
FileAttributes attrStorageCard = FileAttributes.Directory | FileAttributes.Temporary;
foreach (FileSystemInfo fsi in rootDir.GetFileSystemInfos())
{
if ((fsi.Attributes & attrStorageCard) == attrStorageCard)
{
if (new DirectoryInfo(fsi.FullName + @"\Data").Exists)
{
databasePath = fsi.FullName + @"\Data";
break;
}
}
}