Как скрыть папки, созданные в Document Directory в ios? - PullRequest
7 голосов
/ 09 февраля 2012

Я создал несколько 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];

Файл можно увидеть в папке «Документы устройства».

Я хочу скрыть эти файлы, чтобы пользователь не мог их увидеть или удалить.

Может кто-нибудь помочь мне сделать это.

Ответы [ 2 ]

12 голосов
/ 09 февраля 2012

Хорошее место для хранения личных данных - ~/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

4 голосов
/ 09 февраля 2012

Просто добавьте точку к имени файла, как в .SampleTextFile.pdf.

Но решение real - не сохранять документ в NSDocumentDirectory. Вы должны создать подкаталог в NSLibraryDirectory и хранить это содержимое там. Он также резервируется и не удаляется, как Caches и tmp, но пользователь не может получить к нему доступ через iTunes.

...