2012-02-09 37 views
6

Tôi đã tạo ra một số tập tin PDF programatically, mà tôi đang lưu trữ vào bộ nhớ thiết bị bằng cách sử dụng đoạn mã sau >>>>Làm thế nào để ẩn các thư mục được tạo trong Thư mục Tài liệu trong 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]; 

tôi có thể thấy các tập tin trong thư mục Devices Document.

Tôi muốn ẩn các tệp này để người dùng không thể xem hoặc xóa tệp.

Bất kỳ ai cũng có thể giúp tôi thực hiện việc này.

+0

tại sao? người dùng bình thường sẽ không thể nhìn thấy chúng anyway –

+0

Có thể chúng có nghĩa là từ bên trong iTunes? – twilson

+0

Vâng, nếu bạn đặt cờ chia sẻ tài liệu trong info.plist, người dùng có thể xem bất kỳ tệp nào trong thư mục Documents trong iTunes. Nói chung, bạn không nên lưu trữ các tệp dữ liệu riêng tư trong Tài liệu, chỉ nên sử dụng cho tài liệu người dùng (xem bên dưới để biết các vị trí thay thế để lưu trữ dữ liệu ứng dụng). –

Trả lời

12

Một nơi tốt để lưu trữ dữ liệu cá nhân là ở ~/Library/Application Support/, là thư mục được sử dụng trên máy Mac cho mục đích này.

Bạn có thể tạo ra một đường dẫn đến thư mục này bằng:

NSString *appSupportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) firstObject]; 

Bạn sẽ phải tạo thư mục cho mình lần đầu tiên bạn sử dụng nó, mà bạn có thể làm với:

if (![[NSFileManager defaultManager] fileExistsAtPath:appSupportDir]) 
{ 
    [[NSFileManager defaultManager] createDirectoryAtPath:appSupportDir withIntermediateDirectories:YES attributes:nil error:NULL]; 
} 

Tôi đã viết một thư viện đơn giản để làm cho thư mục này và tất cả các thư mục iOS hữu ích khác có sẵn dưới dạng phương thức trên NSFileManager: https://github.com/nicklockwood/StandardPaths

+0

+1, danh mục hữu ích (và tài liệu đẹp). Một yêu cầu, mặc dù: nó sẽ là tốt đẹp nếu bạn thêm ý kiến ​​trong tập tin tiêu đề cũng như những gì từng phương pháp nào. Nếu ai đó thêm danh mục của bạn vào dự án của anh ấy và đồng nghiệp của anh ta thấy điều đó anh ấy có thể không biết những phương pháp nào được cho là phải trả lại hoặc làm. – DarkDust

+0

Điểm hợp lệ. Tôi thường muốn để lại tập tin tiêu đề của tôi uncluttered nếu có thể, và có một liên kết đến tài liệu github trong tập tin .h, nhưng tôi có thể thấy một đối số cho việc đặt tài liệu trong tiêu đề. –

+0

Đường dẫn này là riêng tư hay có thể đọc nhiều ứng dụng từ thư mục này? – f2prateek

3

Chỉ cần tiền tố tên tệp có dấu chấm, như trong .SampleTextFile.pdf.

Nhưng giải pháp thực thực sự là không lưu trữ tài liệu ở số NSDocumentDirectory ngay từ đầu. Bạn nên tạo thư mục con trong NSLibraryDirectory và lưu trữ nội dung này ở đó. Nó cũng được sao lưu và sẽ không bị xóa như Cachestmp nhưng người dùng không thể truy cập bằng iTunes.

+1

nhưng người dùng có thể truy cập bằng phần mềm như iExplorer;) – kurtanamo

Các vấn đề liên quan