2012-02-09 13 views
6

मैं कुछ पीडीएफ फाइलों प्रोग्राम के है, जो मैं उपकरणों स्मृति में भंडारण कर रहा हूँ निम्नलिखित कोड का उपयोग कर बनाया है >>>>आईओएस में दस्तावेज़ निर्देशिका में बनाए गए फ़ोल्डरों को कैसे छिपाना है?

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

क्यों? सामान्य उपयोगकर्ता उन्हें –

+0

वैसे भी देख पाएंगे, शायद वे आईट्यून्स के भीतर से हैं? – twilson

+0

हाँ, अगर आप info.plist में दस्तावेज़ साझाकरण ध्वज सेट करते हैं, तो उपयोगकर्ता आईट्यून्स में दस्तावेज़ फ़ोल्डर में कोई भी फाइल देख सकते हैं। आम तौर पर आपको दस्तावेज़ों में निजी डेटा फ़ाइलों को स्टोर नहीं करना चाहिए, जिनका उपयोग केवल उपयोगकर्ता दस्तावेज़ों के लिए किया जाना चाहिए (आवेदन डेटा स्टोर करने के लिए वैकल्पिक स्थानों के लिए नीचे देखें)। –

उत्तर

12

निजी डेटा स्टोर करने के लिए एक अच्छी जगह ~/Library/Application Support/ में है, जो इस उद्देश्य के लिए मैक पर उपयोग किया गया फ़ोल्डर है।

आप का उपयोग कर इस फ़ोल्डर के लिए पथ उत्पन्न कर सकते हैं:

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

आप फ़ोल्डर अपने आप को पहली बार जब आप इसका इस्तेमाल करते हैं, जो आप के साथ कर सकते बनाना होगा:

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

मैंने एक साधारण लाइब्रेरी लिखी है जो यह और अन्य सभी उपयोगी आईओएस फ़ोल्डर्स NSFileManager पर विधियों के रूप में उपलब्ध कराती है: https://github.com/nicklockwood/StandardPaths

+0

+1, उपयोगी श्रेणी (और अच्छी तरह से प्रलेखित)। एक अनुरोध, हालांकि: यह अच्छा होगा अगर आपने हेडर फ़ाइल में टिप्पणियां भी जोड़ दीं, साथ ही प्रत्येक विधि क्या करती है। अगर कोई अपनी परियोजना में अपनी श्रेणी जोड़ता है और उसके सहयोगी इसे देखता है तो उसे पता नहीं हो सकता कि विधियों को वापस करने या करने के लिए क्या करना चाहिए। – DarkDust

+0

मान्य बिंदु। यदि संभव हो तो मैं आमतौर पर अपने हेडर फ़ाइलों को बिना छेड़छाड़ छोड़ना पसंद करता हूं, और .h फ़ाइल में github दस्तावेज का एक लिंक है, लेकिन मैं शीर्षलेख में दस्तावेज़ डालने के लिए एक तर्क देख सकता हूं। –

+0

क्या यह पथ निजी है, या इस फ़ोल्डर से कई एप्लिकेशन पढ़ सकते हैं? – f2prateek

3

बस .SampleTextFile.pdf में फ़ाइल नाम को एक बिंदु के साथ उपसर्ग करें।

लेकिन वास्तविक समाधान दस्तावेज़ को पहले स्थान पर NSDocumentDirectory में संग्रहीत नहीं करना है। आपको NSLibraryDirectory में उपनिर्देशिका बनाना चाहिए और वहां इस सामान को स्टोर करना चाहिए। यह भी बैक अप हो जाता है और Caches और tmp की तरह शुद्ध नहीं किया जाएगा, लेकिन उपयोगकर्ता आईट्यून्स के साथ इसका उपयोग नहीं कर सकता है।

+1

लेकिन उपयोगकर्ता iExplorer जैसे सॉफ़्टवेयर के साथ उपयोग कर सकते हैं;) – kurtanamo