2013-02-18 36 views
5

मैं के रूप मेंNSDocumentDirectory में निदेशकों की सूची कैसे प्राप्त करें?

if (![tbxCreateFolder.text isEqualToString:@""]) { 
NSArray *arrPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectoryStr = [arrPaths objectAtIndex:0]; // Get documents folder 
NSString *dataPath = [documentsDirectoryStr stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@",tbxCreateFolder.text]]; 

if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]){ 

    NSError* error; 
    if([[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]){ 

     NSLog(@"success"); 
     //Perfrom DB Insertation 
    } 
    else 
    { 
     NSLog(@"[%@] ERROR: attempting to write create MyFolder directory", [self class]); 
     NSAssert(FALSE, @"Failed to create directory maybe out of disk space?"); 
    } 
} 

}

NSDocumentDirectory में कुछ निर्देशिका बनाया है अब मैं निर्देशिका है कि मैं दस्तावेज़ फ़ोल्डर में बनाया है की सूची प्राप्त करना चाहते हैं लेकिन प्रतिक्रिया

NSArray *arrPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *basePathString = ([arrPaths count] > 0) ? [arrPaths objectAtIndex:0] : nil; 
NSLog(@"dirContents %@",basePathString); 

प्रतिक्रिया है :

/Users/amir/Library/Application Support/iPhone Simulator/6.1/Applications/7003E8D5-CCBB-4E54-896B-F4BD2F4D2CB1/Documents 

उत्तर

4

यहां कोड है :

NSString *documentDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
// create directory named "test" 
[[NSFileManager defaultManager] createDirectoryAtPath:[documentDirPath stringByAppendingPathComponent:@"test"] withIntermediateDirectories:YES attributes:nil error:nil]; 
// retrieved all directories 
NSLog(@"%@", [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentDirPath error:nil]); 

NSArray *paths = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentDirPath error:nil]; 
BOOL isDir = NO; 
for (NSString *path in paths) { 
    if ([fileManager fileExistsAtPath:path isDirectory:&isDir] && isDir) { 
     // path is directory 
    } 
} 
+0

सभी फाइलों में प्रतिक्रिया भी। लेकिन मैं सिर्फ निर्देशिकाओं के नाम प्राप्त करना चाहता हूं। –

+0

@AmiriDev मैंने कोड अपडेट किया है। – SAPLogix

0

आप कोड के कुछ सरल लाइनों के साथ ऐसा कर सकते हैं

NSString *documentDirectoryPath = // Initialize with Documents path 
BOOL isDir = NO; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *files = [fileManager contentsOfDirectoryAtPath:documentDirectoryPath error:NULL]; 

NSMutableArray *directoriesPaths = [NSMutableArray array]; 
for (NSString *filePath in files) { 
    if ([fileManager fileExistsAtPath:filePath isDirectory:&isDir] && isDir) { 
     [directoriesPaths addObject:filePath]; 
    } 
} 

NSLog(@"directories %@", directoriesPaths); 
+0

क्या आप कृपया "एनएसएसटींग * दस्तावेज़ डायरेक्टरीपाथ = // लाइन को पूरा कर सकते हैं // दस्तावेज़ पथ " –

+0

सुनिश्चित करें। आपके पास पहले से ही दस्तावेज़ निर्देशिका का पथ है, आपके कोड में यह 'बेसपाथस्ट्रिंग' है। नीचे अपना कोड जोड़ें लेकिन उस परिवर्तन से पहले 'NSString * documentDirectoryPath = // दस्तावेज़ पथ के साथ आरंभ करें 'एनएसएसटींग * दस्तावेज़ डायरेक्टरीपाथ = बेसपाथस्ट्रिंग' – pawelropa

3

तुम हमेशा इस तरह -fileExistsAtPath:isDirectory: का उपयोग कर शीर्ष स्तर निर्देशिका की सामग्री की गणना कर सकते हैं:

NSFileManager *sharedFileManager = [NSFileManager defaultManager]; 
NSDirectoryEnumerator *files = [sharedFileManager enumeratorAtPath:yourPath]; 

for (NSString *path in files) { 
    BOOL isDirectory = NO; 
    [sharedFileManager fileExistsAtPath:path isDirectory:&isDirectory]; 
    if (isDirectory) { 
     // you found a directory, so do what you will with it 
    } 
} 
0

इस कोशिश ,

NSArray *arrPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *strFilePath = [[arrPath objectAtIndex:0] 
[[NSFileManager defaultManager] createDirectoryAtPath:[strFilePath stringByAppendingPathComponent:@"Sample"] withIntermediateDirectories:YES attributes:nil error:nil]; 
+0

क्या यह सूची फाइलें ही या केवल निर्देशिकाएंगी? –