2009-08-13 16 views
10

जो मैं करना चाहता हूं वह काफी आसान लगता है: मेरे ऐप पर दिए गए "निर्देशिका" में फ़ाइल नामों की एक सरणी प्राप्त करें। लेकिन जितना अधिक मैं NSFileManager और NSBundle के साथ खेलता हूं, मुझे लगता है कि मैं और अधिक खो गया हूं ... मैं बस अपने आईफोन एक्सकोड प्रोजेक्ट में एक विशिष्ट निर्देशिका में व्यवस्थित फाइलों के फाइलनाम प्राप्त करना चाहता हूं ... उदाहरण के लिए: प्रश्न में निर्देशिका है "छवियां" कहा जाता है (एक्सकोड में प्रोजेक्ट आइकन के तहत "जोड़ें> नया समूह" का उपयोग करके बनाया गया) और इसमें 10 .png छवियां शामिल हैं। यह आसान लगता है लेकिन मुझे कहीं नहीं मिल रहा है। मैं जवाब खोजने में कुछ मदद की सराहना करता हूं।मैं अपने ऐप में दी गई निर्देशिका में सभी फ़ाइलों के फाइलनामों का एनएसएआरआरई कैसे प्राप्त करूं?

प्रश्न: मैं अपने ऐप में किसी दिए गए निर्देशिका में सभी फ़ाइलों के फाइलनामों का एनएसएआरआरई कैसे प्राप्त करूं?

उत्तर

29

यदि आप फ़ोल्डर को ऐप बंडल का हिस्सा बनना चाहते हैं, तो आपको समूह के बजाय संसाधन समूह के अंदर एक फ़ोल्डर संदर्भ बनाना होगा (यह पीले रंग के विपरीत एक नीले फ़ोल्डर के रूप में एक्सकोड में दिखाई देगा एक)।

ऐसा करने के लिए, आप फ़ोल्डर को फ़ोल्डर से खींचें और संकेत दिए जाने पर फ़ोल्डर संदर्भ का चयन करें।

NSError *error = nil; 

NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath] 
          stringByAppendingPathComponent:@"YourFolder"]; 

NSArray *yourFolderContents = [[NSFileManager defaultManager] 
           contentsOfDirectoryAtPath:yourFolderPath error:&error]; 
+0

मेरे मामले में, stringByAppendingString: @ "YourFolder" काम नहीं कर रहा है क्योंकि अंतिम पथ में "/" गायब है। मैं बजाय stringByAppendingPathComponent: @ "YourFolder" का उपयोग करने का सुझाव देता हूं। इसमें/चरित्र शामिल होगा। पूरी लाइन होनी चाहिए: एनएसएसटींग * yourFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @ "YourFolder"]; –

+0

आप सही हैं, बस इसे अपडेट किया गया। – pgb

9

स्वीकार किए जाते हैं जवाब अब साल के लिए बहिष्कार किया गया है:

एक बार जब आप गए हैं, आपको कुछ के साथ फ़ोल्डर की सामग्री को प्राप्त करने के लिए सक्षम होना चाहिए। इसके बजाय निम्नलिखित का उपयोग किया जाना चाहिए।

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error 

अद्यतन: @macserv ने इसे पोस्ट करने के बाद स्वीकृत उत्तर अपडेट किया।

+0

मैंने इसे प्रतिबिंबित करने के लिए स्वीकृत उत्तर संपादित किया है। – macserv

1

आजकल, यह है तुम कैसे करते:

  1. खोजक से, खींचें अपने प्रोजेक्ट की नाविक में अपने फ़ोल्डर ड्रॉप & और अगले पॉपअप दिखाई देगा: enter image description here
  2. आप में देख सकते हैं वह स्क्रीनशॉट, आपको चुनना है फ़ोल्डर संदर्भ बनाएँ।
  3. क्या इस पोस्ट का समाधान आपको करने के लिए कहता है। मेरा मतलब है:

    एनएसईआरआर * त्रुटि = शून्य;

    एनएसएसटींग * yourFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @ "YourFolder"];

    NSArray * yourFolderContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: yourFolderPath त्रुटि: & त्रुटि];

संबंधित मुद्दे