2016-04-11 25 views
5

Ich versuche zu erstellen, wenn ich meine UWP-Anwendung ausführen.Wie erstelle ich einen Ordner in einer UWP-Anwendung?

Ich habe den folgenden Code:

string documentsPath = Package.Current.InstalledLocation.Path; 
System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(false); 
Task.Factory.StartNew(async() => 
{ 
    await Package.Current.InstalledLocation.CreateFolderAsync("Data"); 
    mre.Set(); 
}); 
mre.WaitOne(); 

Aber die Zeile:

await Package.Current.InstalledLocation.CreateFolderAsync("Data"); 

führt den folgenden Fehler:

"Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"}

bei this link: UWP File access permissions Suchen sie besagt Folgendes:

When you create a new app, you can access the following file system locations by default:

Application install directory. The folder where your app is installed on the user’s system.

There are two primary ways to access files and folders in your app’s install directory:

You can retrieve a StorageFolder that represents your app's install directory, like this:

Windows.Storage.StorageFolder installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation 

So hätte ich gedacht, dass mein Code funktionieren würde. Also meine Frage ist, wie erstelle ich einen Ordner mit einer UWP-Anwendung?

+0

versuchen, die Debugging-Anwendung als Administrator oder Visual Studio als Administrator –

+0

@Clayton C. Danke für den Vorschlag, aber kein solches Glück, ich habe Angst. Versucht, Visual Studio als Admin und mein Remote Debugger-Programm auszuführen, aber immer noch denselben Fehler – user1

Antwort

12

Sie können nicht Ordner in InstalledLocation erstellen, MSDN:

...The app's install directory is a read-only location...

Versuchen Sie stattdessen lokalen Ordner zu verwenden:

ApplicationData.Current.LocalFolder.CreateFolderAsync("Data");

4

Verwenden ApplicationData.Current.LocalFolder.Path statt Package.Current.InstalledLocation.Path

Package.Current.InstalledLocation.Path gibt Ihnen den Pfad, in dem all Ihr Code und Ihre Ressource unter Verwendung des Visual Studio-Debuggers ausgeführt werden, der normalerweise der Debug-Ordner für Quellcode ist. Dies ist nicht über UWP-API-Bibliotheken zugänglich, die normalerweise in .Net-Anwendungen (win32) verfügbar sind.

UWP App über Lese-/Schreibzugriff auf den Ordner "C: \ Benutzer \ {userprofile} \ AppData \ Local \ Packages \ {packagenameguid} \" Sie Ordner erstellen/Dateien an dieser Stelle zur Laufzeit von Anwendungen.

Verwandte Themen