我已经使用xamarin表格ios连接了iCloud。我的文件已复制到icloud,没有任何错误。但是它保存在 file:/// private / var / mobile / Library / Mobile%20Documents / iCloud〜com〜companyname〜MobileDoc / 路径中。
当我在iCloud中检查时,我的文件没有显示。但是当我搜索该文件时,其位置显示为iCloud-> MobileDoc-> File.txt。但是当我在iCloud内部检查时,没有文件夹调用MobileDoc。
这是我尝试过的示例Here
这是我用来保存文档的代码。
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);
}
答案 0 :(得分:0)
保存iCloud文档
要将UIDocument
添加到iCloud,您可以直接调用UIDocument.Save
(仅适用于新文档)或使用NSFileManager.DefaultManager.SetUbiquitious
移动现有文件。示例代码使用此代码直接在普遍存在的容器中创建一个新文档(这里有两个完成处理程序,一个用于保存操作,另一个用于打开):
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
。这将是安全和稳定的。