Исключение DirectoryNotFoundException произошло в xamarin forms ios с использованием plugin.media.crossmedia

#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 !