2012-02-10 11 views
10

मैं फ़ाइलों को कॉपी करने की कोशिश कर रहा हूं जिन्हें मैं "शामिल" नामक फ़ोल्डर में जोड़ता हूं जिसे "निर्देशिका" भी कहा जाता है। मैं resContents शून्य मूल्य के लिए मिलता है। क्यूं कर? धन्यवादआईओएस प्रतिलिपि मुख्य बंडल से दस्तावेजों की निर्देशिका में

- (void)copyResources{ 

     NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"includes"]; 
     NSString *destPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"includes"]; 

     NSArray* resContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:sourcePath error:NULL]; 

     for (NSString* obj in resContents){ 
      NSError* error; 
      if (![[NSFileManager defaultManager] copyItemAtPath:[sourcePath stringByAppendingPathComponent:obj] toPath:[destPath stringByAppendingPathComponent:obj] 
        error:&error]) 
       NSLog(@"Error: %@", error);; 
     } 

    } 

उत्तर

6

आपको अपने एक्सकोड प्रोजेक्ट में अपने includes फ़ोल्डर को फ़ोल्डर संदर्भ के रूप में जोड़ना चाहिए, न कि समूह।

समूह केवल फ़ोल्डर संरचना प्रदान करने के बजाय चीजों को व्यवस्थित रखने के लिए हैं और इसलिए डिवाइस पर प्रतिलिपि करते समय, सभी फाइलें एक ही स्तर पर समाप्त होती हैं।

+0

महान, काम कर रहा है! धन्यवाद – Jaume

2

अपने संकलित एप्लिकेशन बंडल में देखें।

आमतौर पर, एक्सकोड उत्पन्न बंडल फ्लैट होते हैं। इसका अर्थ यह है कि यद्यपि आपकी अतिरिक्त संसाधन फ़ाइलों को बंडल में कॉपी किया जाएगा, आपके द्वारा बनाई गई कोई भी निर्देशिका नहीं होगी और इसलिए संसाधन पथ पर कोई "शामिल" निर्देशिका नहीं है। नतीजतन, आपकी स्रोत सामग्री शून्य होगी। तो अपने मामले में, केवल 'एनएसएसटींग * स्रोतपाथ = [[एनएसबंडल मेनबंडल] संसाधनपैथ] का उपयोग करने का प्रयास करें;

संपादित करें: ठीक है और स्पष्ट रूप से एक फ़ोल्डर संदर्भ जोड़ना भी काम करता है (Ignacio Inglese को क्रेडिट)।

+0

ठीक है, लेकिन .nib और plists सहित सभी फ़ाइलों को सूचीबद्ध किया गया है! मुझे केवल एक विशिष्ट फ़ोल्डर से फ़ाइलों का चयन करने की आवश्यकता है। संभव नहीं? – Jaume

+0

यह बंडल में एक फ्लैट संरचना है। – twilson

+0

@ जैम वैसे तो आपको अपनी आवश्यक फ़ाइलों का चयन करना होगा (संभवतः एक सामान्य एक्सटेंशन द्वारा, या अपने कोड में फ़ाइल नामों की एक सूची रखें)। –

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

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