Сохранение файлов в приложениях Магазина Windows

Моя программа обрабатывает все файлы, указанные пользователем. После этого желательно сохранить измененный файл в каталоге с исходным файлом. StorageFolder.GetFolderFromPathAsync метод возвращает "Access Denied",
Связи типов файлов в манифесте не могут быть добавлены, поскольку после обработки файлы сохраняют свое расширение. А что за файл (с любым расширением) пользователь выбирает сказать невозможно. Код, в котором происходит ошибка.

    internal async static void SetFile(List<byte> byteArray , StorageFile file)
    {
        try
        {
            string path = Path.GetDirectoryName(file.Path);
            StorageFolder newFolder = await StorageFolder.GetFolderFromPathAsync(path);
            StorageFile newFile = await newFolder.CreateFileAsync(string.Format(@"crt{0}", Path.GetFileName(file.Name)), CreationCollisionOption.FailIfExists);
            Stream stream = await file.OpenStreamForWriteAsync();
            BinaryWriter writer = new BinaryWriter(stream);
            writer.Write(byteArray);
            writer.Flush();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

Файл StorageFile - файл, указанный пользователем. Я пытаюсь создать новую папку на основе пути к исходному файлу. Ошибка - "Отказано в доступе". Чтобы получить доступ к этой папке, я должен зарегистрировать расширения файлов, которые я использую. Это невозможно. Скажите, пожалуйста, мы можем обойти это так? Или что можно сделать в моем случае?

1 ответ

Решение

Насколько я знаю, вы не можете сохранить файл на ПК, если не продолжите выбор средства сохранения в случае приложения Магазина Windows. Вот почему вы можете получить ошибку "Отказано в доступе". Нажмите здесь для File Access and Permissions.

С другой стороны, вы можете всегда сохранять файлы в системной папке, выделенной для самого приложения, в ApplicationData.LocalFolder ,

Вы можете установить дополнительные возможности для своего приложения, чтобы оно могло получать доступ к съемным устройствам.

Я не знаю, чтобы быть другими, чем эти.

Другие вопросы по тегам