अगर मैं अपने सैंडबॉक्स के अनुप्रयोग समर्थन का उपयोग कर NSFileManager:URLForDirectory
तो मैं निम्न URL वापस पाने निर्देशिका लाने:NSFileManager: enumeratorAtURL: NSFileManager के लिए URL का एक अलग रूप रिटर्न: URLForDirectory
file://localhost/var/mobile/Applications/EA80DE91-394C-4EAB-B269-1081C859BB0F/Library/Application%20Support/
अगर मैं NSFileManager:enumeratorAtURL
का उपयोग खोज करने के लिए हालांकि निर्देशिका मैं प्रपत्र के URL वापस पाने:
file://localhost/private/var/mobile/Applications/EA80DE91-394C-4EAB-B269-1081C859BB0F/Library/Application%20Support/
यह मैं हूँ कारण समस्याएं हो रही है क्योंकि मैं यूआरएल खोज कर रहा हूँ/जोड़तोड़ की जगह और अंतर एक बेमेल कारण बनता है। मैंने पहले कहीं और इस तरह के अंतर में भाग लिया है और मेरा समाधान तब कच्चे यूआरएल के बजाय यूआरएल के पथ (NSURL:path
का उपयोग करके) का उपयोग करना था, हालांकि इस स्थिति में काम नहीं किए जाने वाले पथ इस प्रकार काम नहीं करेंगे:
/var/mobile/Applications/EA80DE91-394C-4EAB-B269-1081C859BB0F/Library/Application Support
/private/var/mobile/Applications/EA80DE91-394C-4EAB-B269-1081C859BB0F/Library/Application Support/
मैं जो करने की कोशिश कर रहा हूं वह यह है: मेरे पास एक ही नाम के साथ मेरी एप्लिकेशन समर्थन निर्देशिका में कई फाइलें हो सकती हैं लेकिन विभिन्न स्थानों पर, और मुझे एप्लिकेशन समर्थन निर्देशिका से संबंधित पथ निकालने की आवश्यकता है। यानी अगर मैं निम्नलिखित है
/Application Support/abc/file.dat
/ApplicationSupport/abc/def/file.dat
मैं "abc" और "abc/def" निकालने में सक्षम होना चाहता हूँ।
NSArray *keys = [NSArray arrayWithObject:NSURLIsRegularFileKey];
NSDirectoryEnumerator *dirEnumerator = [self.fileManager enumeratorAtURL:[MyManager appSupportDirectory]
includingPropertiesForKeys:keys
options:NSDirectoryEnumerationSkipsHiddenFiles
errorHandler:nil];
for (NSURL *url in dirEnumerator)
{
if (NSOrderedSame == [[url lastPathComponent] caseInsensitiveCompare:kFilename])
{
NSString *appSupportPath = [[MyManager appSupportDirectory] path];
NSString *pathToFile = [url path];
pathToFile = [pathToFile URLByDeletingLastPathComponent];
NSString *subPath = [pathToFile stringByReplacingOccurrencesOfString:appSupportPath withString:@""];
(MyManager: appSupportDirectory कॉल NSFileManager: URLForDirectory: NSApplicationSupportDirectory उपयोग करते हुए) मैं निम्नलिखित कोड का उपयोग कर इस कर रहा था
इस सिम्युलेटर जहां enumeratorAtURL:
और URLFOrDirectory:
वापसी समान पथ, लेकिन कारण पर ठीक काम करता है उनके हार्डवेयर पर मतभेद यह विफल रहता है।
क्या समान पथ लौटने के लिए enumeratorAtURL:
और URLForDirectory:
प्राप्त करने का कोई तरीका है, या यदि मैं वर्तमान में क्या कर रहा हूं, तो सबपैथ निकालने का एक वैकल्पिक सुरुचिपूर्ण तरीका नहीं है?
मुझे एक ही समस्या थी। फ़ाइल प्रबंधक की सामग्री OfDirectoryAtURL/URL/के साथ एक यूआरएल देता है। और मुझे डेटाबेस में अपने यूआरएल रिकॉर्ड की तुलना में परेशानी थी। – John