ios - Xamarin ios 云文件复制位置问题
问题描述
我已经使用 xamarin forms ios 连接了 iCloud。我的文件复制到 icloud 没有任何错误。但它保存在file:///private/var/mobile/Library/Mobile%20Documents/iCloud~com~companyname~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);
}
解决方案
保存 iCloud 文档
要将 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
。这将是安全和稳定的。
推荐阅读
- html - 网格布局,每个元素只占用它需要的空间
- python - 在 Django 项目中的 Ubuntu 下创建更改文件夹名称的文件夹
- bash - 特定子目录中的递归 grep
- azure-stream-analytics - 在 StreamAnalytic Query 中如何连接来自相同输入的数据
- mongodb - pymongo基本功能不起作用
- python - GAN 网络光盘。loss减少和Gen.增加而不是减少
- html - 如何设置我的图像样式:悬停在响应式网站的链接中?
- python - Python,在 tkinter 中选择子菜单项时在 GUI 中执行脚本?
- php - 调用成员函数 wp_rewrite_rules()
- bash - How to compare filenames in bash