Как скрыть папки, созданные в Document Directory в ios?

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

Решение

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

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

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

Другие вопросы по тегам