Разве File.Exists не работает внутри проекта UWP? - PullRequest
0 голосов
/ 13 мая 2019

File.Exists (Filepath);прекрасно работает в консольном приложении, но когда я делаю то же самое внутри uwp, он не обнаруживает файл.

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

Код из приложения UWP:

            string path = @"C:\Users\Name\Desktop\image.jpg";

                if (File.Exists(path))
                {
                    ProcessFile(path);
                }
                else if (Directory.Exists(path))
                {
                    ProcessDirectory(path);
                }

UWP: Когда он попадает в File.Exists, я получаю возвратзначение false, и да, я точно знаю, что изображение там, где оно есть.

Консоль: Когда он попадает в File.Exists, я получаю возвращаемое значение true, затем без проблем переходит в вызываемый метод.

Я ожидаю, что мой код найдет файл и передаст filePath в мой метод с именем "processFile".

Нет ли у приложений UWP доступа к файлам вне его LocalStorage или другоговопрос, который я не вижу?

Ответы [ 2 ]

4 голосов
/ 13 мая 2019

UWP не имеет прямого доступа к файлам вне папки приложения и папки данных приложения. Это единственные два местоположения, доступные через System.IO API.

Вы можете использовать StorageFile API для доступа к большему количеству местоположений, если вы включите соответствующие возможности - например, доступ к библиотекам или broadFileSystemAccess или используйте средства выбора файлов / папок. В частности, broadFileSystemAccess позволяет получить доступ ко всей файловой системе, но у вашего приложения должна быть на то веская причина (в противном случае оно не пройдет процесс сертификации Microsoft Store).

Для получения дополнительной информации см. Документы .

2 голосов
/ 13 мая 2019

Это правильно. Приложения UWP помещаются в изолированную программную среду и не могут таким образом получать доступ к файлам за пределами LocalStorage.

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

Дополнительная информация: Работа с файлами в приложениях UWP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...