दिलचस्प पोस्ट
माउस कर्सर को सी # का उपयोग कैसे करें? मैं बूटस्ट्रैप को सभी समान ऊंचाई कैसे बना सकता हूँ? विंडोज 7, update.packages समस्या: "अस्थायी स्थापना को स्थानांतरित करने में असमर्थ"? क्या grep केवल शब्द खोज पैटर्न से मेल खाते हैं? Android (JSONObject) मैं प्रत्येक कुंजी और प्रत्येक मान पाने के लिए फ्लैट JSON ऑब्जेक्ट के माध्यम से कैसे लूप कर सकता हूं एक फ्लोटिंग प्वाइंट नंबर के चिन्ह, मैन्टिसा और एक्सपोनेंट कैसे प्राप्त करें जीएसएएन का उपयोग करते हुए बेतरतीब ढंग से जेनरेट किए गए और असंगत JSON फ़ील्ड / कुंजी नामों से निपटना jQuery, सरल मतदान उदाहरण आईओएस अद्वितीय उपयोगकर्ता पहचानकर्ता कैसे स्क्रॉल करने योग्य डिब्बे के भीतर निश्चित हैडर तालिका बनाने के लिए? ValueError: numpy.dtype में गलत आकार है, पुनः कंपाइलिंग का प्रयास करें कैसे कोणीय यहाँ क्षेत्र के साथ अद्यतन नहीं करता है? क्या एक ईवेंट हैंडलर को एक नियंत्रण से "चोरी" करना संभव है और इसे किसी दूसरे को दे सकता है? ऑरेकल में क्रम के मान को रीसेट करने की आवश्यकता है AJAX पोस्ट और प्लस साइन (+) – कैसे एन्कोड?

दस्तावेज निर्देशिका (एनएसडी दस्तावेज़ डायरेक्टरी) क्या है?

क्या कोई मुझे बता सकता है कि दस्तावेज़ों की एक आईओएस ऐप में क्या है और इसका उपयोग कब किया जाए?

इस समय मैं जो विश्वास करता हूं वह है:

मेरे लिए, ऐसा एक केंद्रीय फ़ोल्डर लगता है जहां उपयोगकर्ता ऐप के लिए आवश्यक किसी भी फाइल को स्टोर कर सकता है।

यह कोर डाटा की तुलना में एक अलग स्थान होगा?

ऐसा लगता है कि प्रत्येक ऐप को अपनी खुद की दस्तावेज़ निर्देशिका मिलती है

मैं दस्तावेज़ निर्देशिका की एक उपनिर्देशिका बनाने के लिए स्वतंत्र हूं, जैसे दस्तावेज़ निर्देशिका / चित्र, या दस्तावेज निर्देशिका / वीडियो?

वेब के समाधान से एकत्रित समाधान "दस्तावेज निर्देशिका (एनएसडी दस्तावेज़ डायरेक्टरी) क्या है?"

आपका ऐप केवल (एक नॉन-जेलब्रोकन डिवाइस पर) एक "सैंडबॉक्स्ड" वातावरण में चलता है। इसका मतलब यह है कि यह केवल फाइलों और निर्देशिकाओं को अपनी सामग्री के भीतर ही एक्सेस कर सकता है। उदाहरण के लिए दस्तावेज़ और लाइब्रेरी

आईओएस एप्लीकेशन प्रोग्रामिंग गाइड देखें।

अपने अनुप्रयोगों के सैंडबॉक्स के दस्तावेज़ निर्देशिका तक पहुंचने के लिए, आप निम्न का उपयोग कर सकते हैं:

आईओएस 8 और नए, यह अनुशंसित विधि है

+ (NSURL *)applicationDocumentsDirectory { return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; } 

अगर आपको आईओएस 7 या इससे पहले का समर्थन करने की आवश्यकता है

 + (NSString *) applicationDocumentsDirectory { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *basePath = paths.firstObject; return basePath; } 

यह दस्तावेज़ निर्देशिका आपको आपके ऐप को बनाता है और इसकी ज़रूरत हो सकती फ़ाइलों और उपनिर्देशिकाओं को संग्रहीत करने की अनुमति देता है

अपने ऐप्स सैंडबॉक्स उपयोग की लाइब्रेरी निर्देशिका में फ़ाइलों का उपयोग करने के लिए (ऊपर paths स्थान पर):

 [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0] 

यह आईओएस 8 में बदल गया है। निम्न तकनीकी नोट देखें: https://developer.apple.com/library/ios/technotes/tn2406/_index.html

ऐप्पल स्वीकृत तरीका (ऊपर दिए गए लिंक से) निम्नानुसार है:

 // Returns the URL to the application's Documents directory. - (NSURL *)applicationDocumentsDirectory { return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; } 

स्वीकार्य उत्तर द्वारा सुझाए गए दस्तावेज़ में मुझे कोड नहीं मिला, लेकिन मुझे यहां अद्यतन समकक्ष मिला:

फ़ाइल सिस्टम प्रोग्रामिंग मार्गदर्शिका :: फ़ाइलें और निर्देशिकाएं एक्सेस करना »

 - (NSURL*)applicationDataDirectory { NSFileManager* sharedFM = [NSFileManager defaultManager]; NSArray* possibleURLs = [sharedFM URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask]; NSURL* appSupportDir = nil; NSURL* appDirectory = nil; if ([possibleURLs count] >= 1) { // Use the first directory (if multiple are returned) appSupportDir = [possibleURLs objectAtIndex:0]; } // If a valid app support directory exists, add the // app's bundle ID to it to specify the final directory. if (appSupportDir) { NSString* appBundleID = [[NSBundle mainBundle] bundleIdentifier]; appDirectory = [appSupportDir URLByAppendingPathComponent:appBundleID]; } return appDirectory; } 

यह NSSearchPathForDirectoriesInDomain के उपयोग को हतोत्साहित करता है:

NSSearchPathForDirectoriesInDomains फ़ंक्शन URLForDirectory की तरह व्यवहार करता है: inDomains: विधि, लेकिन स्ट्रिंग-आधारित पथ के रूप में निर्देशिका का स्थान देता है। आपको URLForDirectory: inDomains: इसके बजाय विधि का उपयोग करना चाहिए।

यहां के साथ खेलने के लिए कुछ अन्य उपयोगी निर्देशिका स्थिरांक दिए गए हैं। इसमें कोई संदेह नहीं है कि इन सभी को आईओएस में समर्थित नहीं हैं। इसके अलावा आप NSHomeDirectory () फ़ंक्शन का उपयोग कर सकते हैं जो:

IOS में, होम डायरेक्टरी अनुप्रयोग का सैंडबॉक्स डायरेक्टरी है I ओएस एक्स में, यह एप्लिकेशन की सैंडबॉक्स डायरेक्टरी या वर्तमान उपयोगकर्ता की होम डायरेक्टरी है (यदि अनुप्रयोग सैंडबॉक्स में नहीं है)

NSPathUtilities.h से

 NSApplicationDirectory = 1, // supported applications (Applications) NSDemoApplicationDirectory, // unsupported applications, demonstration versions (Demos) NSDeveloperApplicationDirectory, // developer applications (Developer/Applications). DEPRECATED - there is no one single Developer directory. NSAdminApplicationDirectory, // system and network administration applications (Administration) NSLibraryDirectory, // various documentation, support, and configuration files, resources (Library) NSDeveloperDirectory, // developer resources (Developer) DEPRECATED - there is no one single Developer directory. NSUserDirectory, // user home directories (Users) NSDocumentationDirectory, // documentation (Documentation) NSDocumentDirectory, // documents (Documents) NSCoreServiceDirectory, // location of CoreServices directory (System/Library/CoreServices) NSAutosavedInformationDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 11, // location of autosaved documents (Documents/Autosaved) NSDesktopDirectory = 12, // location of user's desktop NSCachesDirectory = 13, // location of discardable cache files (Library/Caches) NSApplicationSupportDirectory = 14, // location of application support files (plug-ins, etc) (Library/Application Support) NSDownloadsDirectory NS_ENUM_AVAILABLE(10_5, 2_0) = 15, // location of the user's "Downloads" directory NSInputMethodsDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 16, // input methods (Library/Input Methods) NSMoviesDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 17, // location of user's Movies directory (~/Movies) NSMusicDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 18, // location of user's Music directory (~/Music) NSPicturesDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 19, // location of user's Pictures directory (~/Pictures) NSPrinterDescriptionDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 20, // location of system's PPDs directory (Library/Printers/PPDs) NSSharedPublicDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 21, // location of user's Public sharing directory (~/Public) NSPreferencePanesDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 22, // location of the PreferencePanes directory for use with System Preferences (Library/PreferencePanes) NSApplicationScriptsDirectory NS_ENUM_AVAILABLE(10_8, NA) = 23, // location of the user scripts folder for the calling application (~/Library/Application Scripts/code-signing-id) NSItemReplacementDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 99, // For use with NSFileManager's URLForDirectory:inDomain:appropriateForURL:create:error: NSAllApplicationsDirectory = 100, // all directories where applications can occur NSAllLibrariesDirectory = 101, // all directories where resources can occur NSTrashDirectory NS_ENUM_AVAILABLE(10_8, NA) = 102 // location of Trash directory 

और अंत में, एक NSURL श्रेणी में कुछ सुविधा विधियां http://club15cc.com/code/ios/easy-ios-file-directory-paths-with-this-handy-nsurl-category

यह कोड स्विफ्ट 2.1 में मेरे लिए काम कर रहा है

 func getDocsDir() -> NSURL? { let fm = NSFileManager.defaultManager() return fm.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).last } 

वैश्विक 3 के रूप में स्विफ्ट 3 और 4:

 var documentsDirectoryUrl: URL { return FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last! } 

Documents फ़ोल्डर के अलावा, आईओएस आपको temp और Library फ़ोल्डर्स को फाइलों को सहेजने देता है।

कौन सा उपयोग करने के लिए अधिक जानकारी के लिए, दस्तावेज से यह लिंक देखें:

  • "आपको अपने ऐप की फ़ाइलें कहाँ रखनी चाहिए।"

आप इस कोड का इस्तेमाल करते हुए दस्तावेज़ डायरेक्टरी का उपयोग कर सकते हैं जो मूल रूप से प्लास्ट प्रारूप में फ़ाइल को संसाधित करने के लिए उपयोग में लाया जाता है:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths firstObject]; return documentsDirectory; 

यहां एक उपयोगी छोटी फ़ंक्शन है, जो आईओएस फ़ोल्डर्स का इस्तेमाल / बनाने में थोड़ा आसान बनाता है।

आप इसे एक सबफ़ोल्डर का नाम देते हैं, यह आपके लिए पूर्ण पथ वापस लौटाएगा, और सुनिश्चित करें कि निर्देशिका मौजूद है।

(निजी तौर पर, मैं अपने ऐपडेलीटे वर्ग में इस स्थिर कार्य को रोकता हूं, लेकिन संभवतः यह इसे स्थापित करने के लिए सबसे चतुर जगह नहीं है।)

माइस्वाइव इमेज उपडिरेक्टरी की "पूर्ण पथ" प्राप्त करने के लिए, आप इसे कैसे कहते हैं, यहां बताया गया है:

 NSString* fullPath = [AppDelegate getFullPath:@"MySavedImages"]; 

और यहां पूर्ण कार्य है:

 +(NSString*)getFullPath:(NSString*)folderName { // Check whether a subdirectory exists in our sandboxed Documents directory. // Returns the full path of the directory. // NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); if (paths.count < 1) return nil; NSString *rootFolder = [paths firstObject]; NSString* fullFolderPath = [rootFolder stringByAppendingPathComponent:folderName]; BOOL isDirectory; NSFileManager* manager = [NSFileManager defaultManager]; if (![manager fileExistsAtPath:fullFolderPath isDirectory:&isDirectory] || !isDirectory) { NSError *error = nil; NSDictionary *attr = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey]; [manager createDirectoryAtPath:fullFolderPath withIntermediateDirectories:YES attributes:attr error:&error]; if (error) { NSLog(@"Error creating directory path: %@", [error localizedDescription]); return nil; } } return fullFolderPath; } 

इस छोटे फ़ंक्शन का उपयोग करना, आपके ऐप की दस्तावेज़ निर्देशिका में एक निर्देशिका बनाना आसान है (यदि वह पहले से मौजूद नहीं है), और उसमें एक फाइल लिखने के लिए

यहां बताया गया है कि मैं कैसे निर्देशिका बनाऊँगा, और मेरी छवि फ़ाइलों में से किसी एक में सामग्री इसे लिखूंगा:

 // Let's create a "MySavedImages" subdirectory (if it doesn't already exist) NSString* fullPath = [AppDelegate getFullPath:@"MySavedImages"]; // As an example, let's load the data in one of my images files NSString* imageFilename = @"icnCross.png"; UIImage* image = [UIImage imageNamed:imageFilename]; NSData *imageData = UIImagePNGRepresentation(image); // Obtain the full path+filename where we can write this .png to, in our new MySavedImages directory NSString* imageFilePathname = [fullPath stringByAppendingPathComponent:imageFilename]; // Write the data [imageData writeToFile:imageFilePathname atomically:YES]; 

उम्मीद है की यह मदद करेगा !