2012-02-09 119 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

相關問題