Можно ли сохранить файл в точное, конкретное место? (Windows 8.1 Универсальное приложение C#)

Что я должен сделать:

Сохраните файл изображения в точное, определенное место при запуске приложения (скажем, "Z:\test\photo.jpeg").

Дополнительная требуемая функциональность:

1) Перезаписать файл ''Z:\test\photo.jpeg', если он уже существует.

2) Пропустить запись, если папка "Z: \ test \" не существует.

Что я уже пробовал:

using Windows.Media.Capture.UI;
using Windows.Storage;


CameraCaptureUI camera = new CameraCaptureUI();
StorageFile photo = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);

if (photo != null)
{

    var targetFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("photo.jpeg", CreationCollisionOption.ReplaceExisting);
    if (targetFile != null)
    {

        await targetFile.DeleteAsync();
        await photo.MoveAndReplaceAsync(targetFile);
    }

}

Вопрос:

Есть ли способ получить переменную 'targetFile', чтобы указать на конкретное местоположение, например. "Z: \ Test \ photo.jpeg"?

Я не хочу использовать локальную папку данных приложения, папку с изображениями или что-то подобное. Это должно быть именно это место.

1 ответ

Univeral Apps помещаются в "песочницу" и имеют доступ только к своим папкам хранения

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

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

Вот обзор доступных расположений файлов для приложений UWP на MSDN.

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