2012-02-09 165 views
6

我创造了一些PDF文件编程,这是我现在用的是下面的代码存储到设备内存>>>>如何隐藏文档目录中在ios中创建的文件夹?

NSString *fileName = [NSString stringWithFormat:@"SampleTextFile.pdf",strFinalString]; 

    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *saveDirectory = [path objectAtIndex:0]; 
    NSString *saveFileName = fileName; 
    NSString *documentPath = [saveDirectory stringByAppendingPathComponent:saveFileName]; 

我可以看到在设备文件夹中的文件。

我想隐藏这些文件,以便用户无法看到或删除它。

任何人都可以帮助我做到这一点。

+0

为什么?普通用户无法看到他们 – 2012-02-09 08:29:04

+0

也许他们是指从iTunes内? – twilson 2012-02-09 08:31:50

+0

是的,如果您在info.plist中设置文档共享标志,用户可以在iTunes中查看Documents文件夹中的任何文件。通常,您不应将文件中的私人数据文件存储在文档中,这些文件只能用于用户文档(请参阅下面的替代位置来存储应用程序数据)。 – 2012-02-09 09:20:13

回答

12

存储私人数据的好地方是~/Library/Application Support/,这是Mac上用于此目的的文件夹。

可以使用生成此文件夹的路径:

NSString *appSupportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) firstObject]; 

你必须创建自己你使用它的第一次的文件夹,你可以用做:

if (![[NSFileManager defaultManager] fileExistsAtPath:appSupportDir]) 
{ 
    [[NSFileManager defaultManager] createDirectoryAtPath:appSupportDir withIntermediateDirectories:YES attributes:nil error:NULL]; 
} 

我写了一个简单的库,使这个和所有其他有用的iOS文件夹作为NSFileManager上的方法可用:https://github.com/nicklockwood/StandardPaths

+0

+1,有用的类别(以及很好的文档)。但是有一个要求:如果您在头文件中添加了注释以及每种方法的作用,那将会很好。如果有人将你的类别添加到他的项目中,并且他的同事看到它,他可能不知道这些方法应该返回或做什么。 – DarkDust 2012-02-09 09:14:05

+0

有效的点。如果可能的话,我通常喜欢将我的头文件放在一起,并且在.h文件中有一个指向github文档的链接,但是我可以看到将文档放在头文件中的参数。 – 2012-02-09 09:21:26

+0

这个路径是否是私人的,或者可以从这个文件夹读取多个应用程序? – f2prateek 2018-01-12 01:45:18

3

只需在文件名前加一个点,如.SampleTextFile.pdf

但是real解决方法是首先将文档存储在NSDocumentDirectory中。您应该在NSLibraryDirectory中创建子目录并将其存储在那里。它也被备份,不会被清除,如Cachestmp,但用户无法通过iTunes访问它。

+1

,但用户可以使用iExplorer等软件进行访问;) – kurtanamo 2015-12-20 16:47:43

相关问题