Проблема с местоположением копии файла Xamarin ios Cloud - PullRequest
0 голосов
/ 29 ноября 2018

Я подключил iCloud с помощью форм xamarin ios.Мой файл скопирован в icloud без ошибок.Но он сохранен в файле: /// private / var / mobile / Library / Mobile% 20Documents / iCloud ~ com ~ название компании ~ MobileDoc / путь.

Когда я проверил внутри iCloud, мой файл не показывает его.Но когда я ищу этот файл, его местоположение отображается как iCloud -> MobileDoc -> File.txt.Но когда я проверил внутри iCloud, нет вызова папки MobileDoc.

Это пример, который я попробовал Здесь

Это код, который я использую для сохранения документа.

var uburl = NSFileManager.DefaultManager.GetUrlForUbiquityContainer(null);

                 if (uburl == null)
                 {
                     HasiCloud = false;
                 }
                else
                 {
                     HasiCloud = true;
                     iCloudUrl = uburl;

                     var docsFolder = Path.Combine(iCloudUrl.Path, "Documents"); 
             var filePath = Path.Combine(docsFolder, fileName);

         FileService.Save(filePath, attachment.Content);
                     if (option == false)
                         FileService.Instance.Open(filePath);
                }

1 Ответ

0 голосов
/ 03 декабря 2018

Сохранение документов iCloud

Чтобы добавить UIDocument в iCloud, вы можете вызвать UIDocument.Save напрямую (только для новых документов) или переместить существующий файл, используя NSFileManager.DefaultManager.SetUbiquitious.Пример кода создает новый документ непосредственно в контейнере ubiquity с этим кодом (здесь есть два обработчика завершения, один для операции сохранения и другой для открытия):

var docsFolder = Path.Combine (iCloudUrl.Path, "Documents"); // NOTE: Documents folder is user-accessible in Settings
var docPath = Path.Combine (docsFolder, MonkeyDocFilename);
var ubiq = new NSUrl (docPath, false);
var monkeyDoc = new MonkeyDocument (ubiq);
monkeyDoc.Save (monkeyDoc.FileUrl, UIDocumentSaveOperation.ForCreating, saveSuccess => {
Console.WriteLine ("Save completion:" + saveSuccess);
if (saveSuccess) {
    monkeyDoc.Open (openSuccess => {
        Console.WriteLine ("Open completion:" + openSuccess);
        if (openSuccess) {
            Console.WriteLine ("new document for iCloud");
            Console.WriteLine (" == " + monkeyDoc.DocumentString);
            viewController.DisplayDocument (monkeyDoc);
        } else {
            Console.WriteLine ("couldn't open");
        }
    });
} else {
    Console.WriteLine ("couldn't save");
}

В соответствии с документом, когда высохранить файл в icloud, вам нужно использовать UIDocument. Это будет безопасно и стабильно.

...