文件路径不断变化

Posted

技术标签:

【中文标题】文件路径不断变化【英文标题】:File path keep changing 【发布时间】:2015-04-02 22:56:16 【问题描述】:
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentDir = [documentPaths objectAtIndex:0];

self.databasePath = [documentDir stringByAppendingPathComponent:kAppDatabase];


-(void) copyDataBaseIfNotExist


    BOOL success;

NSFileManager *fileManager = [NSFileManager defaultManager];

success = [fileManager fileExistsAtPath:self.databasePath];

if(success) return;

//This block will run for the first time only

NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:kAppDatabase];

// Make a copy of the file in the Documents folder
[fileManager copyItemAtPath:databasePathFromApp toPath:self.databasePath error:nil];
db = [FMDatabase databaseWithPath:self.databasePath];

[self insertDummyData];

NSLog(@"%@ Database path %s ",self.databasePath,__PRETTY_FUNCTION__);

以上代码将文件复制到文档文件夹中。现在第一次保存。文件路径是:

811E4F6C-B282-402A-859B-40FA6DBD2B3C/data/Containers/Data/Application/E6F63F62-30F6-4580-BF4D-C16DE2B33292/Documents/AppDatabase.db

第二次访问:

811E4F6C-B282-402A-859B-40FA6DBD2B3C/data/Containers/Data/Application/48771A22-0616-4162-9DF9-8C5CC4AF6D39/Documents/AppDatabase.db

为什么每次都变,不应该一样?

【问题讨论】:

你为什么在乎?您应该始终使用NSSearchPathForDirectoriesInDomains 我想将返回的路径存储在数据库中,以便以后访问它。但。有什么解决办法? 不要存储完整路径,只存储您附加的部分。 【参考方案1】:

如果您在 ios8 中运行您的应用程序,它将不断更改路径。 在这里结帐:http://pinkstone.co.uk/where-is-the-documents-directory-for-the-ios-8-simulator/

【讨论】:

是的,为 ios8 运行。有什么解决办法? 检查给定的链接,您可能会得到答案。对于 iOS8 和 Yosemite,出于安全原因,Apple 引入了这项技术 :) 只是模拟器还是设备? 说真的,我对此一无所知,我面临着与 WIFI IP 和 *** IP 地址相同的问题 如果您删除并重新加载应用程序,这将永远发生。

以上是关于文件路径不断变化的主要内容,如果未能解决你的问题,请参考以下文章

iOS PDF 的路径每次都在不断变化

在使用KETTLE工具进行ETL数据时,如果输入文本文档的路径是变化的,该如何处理? 文档路径随系统日期变化

iOS沙盒路径变化的说明详解

性能:关键路径的延迟分析

编辑构建定义 - 超过 259 个字符的路径

将文件从本地路径传输到 NFS 路径的最佳方法