删除IOS应用程序时如何删除文件?
Posted
技术标签:
【中文标题】删除IOS应用程序时如何删除文件?【英文标题】:How to delete the file while removing the IOS app? 【发布时间】:2015-08-26 10:02:37 【问题描述】:我在移动应用程序中对文件存储有特定要求。 我正在创建一个文件来将一些数据存储到其中,稍后将检索到这些数据。
在 android 中,如果我将文件存储在以下位置,则在从 android 设备中删除应用程序时文件将被删除。
Android/data//files/test.txt
问题:
在 ios 设备中,我无法获得这种文件路径 删除APP时存储要删除的文件。
谁能帮我在哪里可以存储文件以在删除APP时自动删除?
【问题讨论】:
您可以使用文档目录来存储您的文件。当应用程序被删除时,它也会自动删除您的文件。 感谢@paddy,但是它将如何成为我的应用程序特定的?我怎么知道它可以删除文档目录中的文件? 【参考方案1】:在 iOS 上,您的应用无法真正访问文件系统。它在沙盒中工作,该沙盒仅适用于您的应用程序。这意味着如果您将文档保存在 Documents 目录中,例如,您并没有真正将其保存在 THE Documents 目录中,而是将其保存在应用程序的 Documents 目录中。只有您的应用才能访问该应用,一旦您的应用被卸载,操作系统就会删除您应用沙箱中的所有项目以及应用本身。
这就是为什么当你访问 Document 目录时,你不是访问一个常量目录,而是向操作系统询问要使用的目录的具体地址。该目录的物理地址可能会在您的应用程序的安装(或升级)之间发生变化:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"fileName.txt"];
【讨论】:
感谢您的回答。但是如何在 CORDOVA 文件系统插件中完成呢? 我个人在本地开发应用程序,所以 Cordova 不是我的专长,但也许这会有所帮助:***.com/questions/10945375/… 感谢您的回答@chonch 嗨,我找到了解决方案并在下面给出了答案。但你的回答对我有帮助。【参考方案2】:这是我在 Android 和 IOS 设备上研究和测试后的最终解决方案。
第一步:根据平台区分文件路径如下:
device.platform.toLowercase();
FileUtility.prototype.getFilepath = function()
if(device.platform.toLowercase == "ios")
return "gsmData.txt";
else if(device.platform.toLowercase == "android")
return
"Android/data/test.app.com/files/testData.txt"; ;
以上代码将根据设备返回“ios”或“android”。
Step2:使用上面函数获取的路径创建文件
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
readFileSystem, failureCallBack);
function readFileSystem(fileSys)
fileSys.root.getFile(getFilepath(), create: false,exclusive:false, function(fileEntry)
fileEntry.remove(successCallBack,failureCallBack);
, failureCallBack);
在IOS设备中,如果你用你的APP创建文件,那么当你从IOS设备中删除APP时,该文件将被自动删除。
但是在 Android 中,如果你像我上面提到的那样将它们存储在与 APP 相关的文件夹中,创建的文件将被删除。
希望对你有帮助:)
【讨论】:
但是在 Android 中,如果您像我上面提到的那样将它们存储在与 APP 相关的文件夹中,创建的文件将被删除..你的意思是我将数据保存在我的代码文件夹中?【参考方案3】:每当用户或系统删除应用程序时,存储在其小文件系统沙箱中的任何内容都将随应用程序自动删除。使用返回的数组的第一个对象
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
获取您自己的文档目录的路径,您可以在其中写入文件。当应用程序从设备中删除时,整个目录将被删除。
【讨论】:
以上是关于删除IOS应用程序时如何删除文件?的主要内容,如果未能解决你的问题,请参考以下文章