2017-01-26 5 views
1

Я пытаюсь создать приложение UWP, которое может экспортировать файл, сохраненный в его собственном хранилище, в библиотеку документов.UWP сохранить файл в библиотеке документов и изображений

В Package.appxmanifest я вставленные следующие строки:

<uap:Capability Name="picturesLibrary" /> 
<uap:Capability Name="documentsLibrary" /> 

код, чтобы получить путь заключается в следующем:

StorageFolder storageFolder = await KnownFolders.GetFolderForUserAsync(null /* current user */, KnownFolderId.DocumentsLibrary);    
string path = storageFolder.Path + "\\" + fileName; 

Код для сохранения файла заключается в следующем:

FileStream writer = new FileStream(filePath, FileMode.Create); 

На данный момент программа запускает это исключение:

Access to the path 'C:\Users\luca9\AppData\Roaming\Microsoft\Windows\Libraries\Documents.library-ms' is denied. 

На моем 950XL, исключение аналогично:

Access to the path 'C:\Data\Users\DefApps\APPDATA\ROAMING\MICROSOFT\WINDOWS\Libraries\Documents.library-ms' is denied. 

Я tryied как на документы и библиотеки изображений, но я получаю такое же исключение.

Как его решить?

Спасибо заранее,

Лука

+0

Вы читали эти статьи? https://msdn.microsoft.com/en-us/windows/uwp/files/quickstart-managing-folders-in-the-music-pictures-and-videos-libraries .... https://msdn.microsoft .com/en-us/windows/uwp/files/files-access-permissions – JuP

+0

Думаю, я пропустил их. огромное спасибо – lukemols

ответ

4

Не получить FileStream с пути - приложение не имеет права. Как вы уже StorageFolder, использовать его для создания StorageFile, а затем получить поток от него с одним из его методов, например:

var file = await storageFolder.CreateFileAsync("fileName"); 
using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite)) 
{ 
    // do what you want 
} 
Смежные вопросы