2013-04-15 65 views
3

我讀過我可以用「不備份」屬性標記文件夾。
據我所知,在這種情況下,目錄中的所有內容都將從備份中排除。
在我們的應用程序中,我們需要從備份中排除Documents目錄中的所有文件(在應用程序執行期間可以從文檔添加或刪除文件)。
我們需要將文件存儲在文檔中,因爲我們使用「應用程序支持iTunes文件共享」功能。
我們可以用「不備份屬性」標記文檔目錄嗎?
蘋果是否允許這樣做?
這可能成爲拒絕我們的應用程序的原因?我可以用「不備份」屬性標記文檔目錄嗎?

回答

6

據蘋果

在安裝iOS 5.0和更早的版本,把文件放在 /圖書館/緩存目錄,以防止它們被 備份

在iOS系統5.0.1和以後,把 /Library/Application Support目錄中的文件並將它們的擴展屬性應用於其中。此屬性可防止將文件備份到iTunes或iCloud。如果您的 有大量的支持文件,您可以將它們存儲在自定義的 子目錄中,並將擴展屬性應用於目錄。

據我所知 您無法將文件目錄中不備份屬性

1)你可以使用下面的代碼片段標記的文件目錄中的各個文件

- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString { 
     NSURL *fileURL = 
     [NSURL fileURLWithPath:filePathString]; 

     assert([[NSFileManager defaultManager] 
     fileExistsAtPath: [fileURL path]]); 

     NSError *error = nil; 

     BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool:YES] 
             forKey:NSURLIsExcludedFromBackupKey 
            error:&error]; 
     return success; 
    } 

2)您可以在文檔文件夾內創建一個子目錄,並將擴展屬性應用於該目錄。

您可以使用以下語法設置擴展屬性。

int result = setxattr(path, attrName, myDataBytes, [myData length], 0, 0); 

你可以找到閱讀的更多信息,並在下面link

我希望寫的擴展屬性這有助於

相關問題