将内容从缓存替换为文档目录?

时间:2012-12-15 06:18:49

标签: objective-c ios xcode

在我的文件夹中,我在该文件夹中有一个名为folder1的文件夹,我有css,js,main.html等。我在webview中打开main.html ....如果在服务器中完成了任何更新我正在下载folder2并在缓存目录中解压缩例如:我在文件目录中的folder1中有css,js,main.html,并且在服务器中完成了新的更新,我正在下载folder2并在folder2中的缓存目录中解压缩我是有css只有现在我想比较这些folder1和folder2内容如果相同的意思在这个例子中css存在于我想要删除文件目录folder1中的css的文件夹中,我想将folder2中的css替换为folder1 .. 。这是下一次进程,如果有任何更新,那么我可能会下载js而不是css当时我想只更换js.can任何一个帮助如何检查内容和替换...请帮助我对我的imp

1 个答案:

答案 0 :(得分:1)

根据我的理解,您正在使用Documents目录存储要在UIWebView和Caches目录中加载的CSS和HTML,以从服务器解压缩并存储最新的CSS和HTML文件。解压缩后,您希望将Caches文件夹中的CSS和JS文件的内容与Documents文件夹中的CSS和JS文件的内容进行比较,并在它们已更改时进行替换。

这有两个步骤:

  1. 标准化两个文件夹中的文件名,以便您知道Caches目录中的哪个文件应与Documents目录中的哪个文件进行比较。为要比较的文件指定相同的名称。

  2. 在从服务器获取文件并在Caches文件夹中解压缩时,您可以使用NSFileManager类访问Documents目录中的相同文件(名称与第1点中提到的相同),然后在NSString中读取它然后将其与包含Caches文件夹内容的另一个NSString进行比较。如果比较返回相等,则可以跳过。否则,您可以使用

  3.  NSFileManager *manager = [NSFileManager defaultManager]; 
    
     [manager copyItemAtPath:sourcePath(CachesDir) toPath:destinationPath(DocumentsDir) error:&error]
    

    这会将您最新的解压缩项目从CacheDirectory复制到Documents Directory。

    但是,您可能需要仔细检查文档目录中的保存内容,因为它是在设备映射到的iCloud帐户上备份的。请进一步阅读。