#xamarin #xamarin.forms #xamarin.ios #media #plugin.media.crossmedia
#xamarin #xamarin.forms #xamarin.ios #Медиафайлы #plugin.media.crossmedia
Вопрос:
using (var file = await CrossMedia.Current.TakePhotoAsync(options))
{
.....
}
Я использую кросс-медиа для фотосъемки в xamarin forms ios (приведенный выше код). Я получаю эту ошибку в центре приложений,
System.IO.DirectoryNotFoundException: не удалось найти часть пути «/var/mobile/Containers/Data/Application/D9CD5B7E-D0AD-41A1-97DA-9B6FC4471955/Documents/myapp/2266603_21-1-2021-12-0-21-4152..jpg»
Как устранить эту ошибку?
Error Message:
{
"length": 0,
"offset": 0,
"id": "4be55b3c-33f1-4bbf-99a3-b4af8203a0ba",
"exception": {
"type": "System.IO.DirectoryNotFoundException",
"message": "Could not find a part of the path "/var/mobile/Containers/Data/Application/D9CD5B7E-D0AD-41A1-97DA-9B6FC4471955/Documents/myapp/2266603_21-1-2021-12-1-19-8643..jpg".",
"stackTrace": " at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) <0x102720700 0x00214> in <0c3d4da7367647c9a650750b1a4d0c53#649cd0243319b7ca5a9179e97f48de1f>:0 n at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean isAsync, System.Boolean anonymous) <0x102720650 0x0008f> in <0c3d4da7367647c9a650750b1a4d0c53#649cd0243319b7ca5a9179e97f48de1f>:0 n at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access) <0x102720420 0x0006f> in <0c3d4da7367647c9a650750b1a4d0c53#649cd0243319b7ca5a9179e97f48de1f>:0 ",
"wrapperSdkName": "appcenter.xamarin"
},
"properties": {
"message:": "Could not find a part of the path "/var/mobile/Containers/Data/Application/D9CD5B7E-D0AD-41A1-97DA-9B6FC4471955/Documents/myapp/2266603_21-1-2021-12-1-19-8643..jpg".",
},
"appId": "5993bbda-3072-45e5-9418-a260aa66a94f",
"installId": "761843BC-C04F-4E62-A3EB-C636C58CEFF7",
"isTestMessage": false,
"timestamp": "2021-02-03T03:44:15.833Z",
"sid": "5e3c4238-d2cc-42da-8ab4-319d4c97b21a",
"device": {
"sdkName": "appcenter.ios",
"sdkVersion": "4.0.0",
"wrapperSdkVersion": "4.0.0",
"wrapperSdkName": "appcenter.xamarin",
"model": "iPad7,5",
"oemName": "Apple",
"osName": "iOS",
"osVersion": "14.3",
"osBuild": "18C66",
"locale": "en_AE",
"timeZoneOffset": 240,
"screenSize": "2048x1536",
"appVersion": "3.1.1",
"appBuild": "3.9",
"appNamespace": "com.myapp",
"wrapperRuntimeVersion": "12.6.0"
}
}
Комментарии:
1. SoftDev: Это исключение возникает, когда вы пытаетесь сохранить файл правильно? создавали ли вы каталог перед сохранением в нем данных?
2. CrossMedia создает каталог для Android и ios. Я могу видеть каталог path в Android. Не могу увидеть каталог в ios. Есть ли какая-либо возможность просмотреть каталог файлов устройства ios?
3. Я думаю, что вижу вашу проблему. Не могли бы вы поделиться большей частью своего кода, в котором вы сохраняете путь к файлу и извлекаете его?
Ответ №1:
Предполагая, что вы опубликовали весь соответствующий код и что вы можете воспроизвести ошибку с его помощью, тогда исключение возникает в подключаемом модуле. Таким образом, вам необходимо отправить проблему авторам плагина, чтобы они могли ее решить.
Ответ №2:
По какой-то причине вы ищете этот файл myapp/2266603_21-1-2021-12-1-19-8643..jpg
. Обратите внимание, что есть два «..»?
Вы должны исправить свой код, чтобы он вместо этого пытался ссылаться myapp/2266603_21-1-2021-12-1-19-8643.jpg
!