如何隐藏在ios中的文档目录中创建的文件夹?

时间:2012-02-09 08:27:23

标签: ios ios4 ios5 ios-simulator

我已经以编程方式创建了一些PDF文件,我使用以下代码将其存储到设备内存中>>>>

    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];

我可以在Devices Document文件夹中看到该文件。

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

任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

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

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