2010-10-14 4 views
0

Je veux connaître le contenu d'un répertoire de ses documents ou de tout autre. s'il y a un fichier ou plus d'un j'ai besoin de ces noms de fichiers. effectivement je crée le répertoire d'exportation dans le répertoire de documents .. et si l'exportation est vide puis je copie le fichier zip du paquet principal pour exporter le dossierComment trouver le contenu dans le répertoire de documents de l'iPhone

mais le code suivant ne fonctionne pas. si l'export est vide, il ne va pas dans ce cas si le bloc .. y at-il des fichiers cachés ..? et dans la dernière boucle, il ne fait rien.

comment faire cela.

s'il vous plaît aidez-moi

self.fileManager = [NSFileManager defaultManager]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
    self.documentsDir = [paths objectAtIndex:0]; 
    //creating folder 'export' to recieve the file from iTunes 
    NSString *srcFilePath = [NSString stringWithFormat:@"%@/export", self.documentsDir]; 
    [fileManager createDirectoryAtPath:srcFilePath 
      withIntermediateDirectories:NO 
          attributes:nil 
           error:nil]; 
    //copying the zip file into exprort from bundle if export is empty 
    if(![fileManager fileExistsAtPath:srcFilePath]) { 
     NSLog(@"File exists at path: %@", srcFilePath); 
     NSString *resZipfile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"zip" 
                 inDirectory:@"pckg"]; 
     NSLog(@"zip file path ...%@", resZipfile); 
     NSData *mainBundleFile = [NSData dataWithContentsOfFile:resZipfile]; 
     [[NSFileManager defaultManager] createFileAtPath:srcFilePath 
               contents:mainBundleFile 
               attributes:nil];  
    } 
    NSString *eachPath; 
    NSDirectoryEnumerator *dirEnum = [fileManager enumeratorAtPath:srcFilePath]; 

    for(eachPath in dirEnum) NSLog(@"FILE: %@", eachPath); 

Répondre

6
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsPath = [paths objectAtIndex:0]; 

NSFileManager *manager = [[NSFileManager alloc] init]; 
NSDirectoryEnumerator *fileEnumerator = [manager enumeratorAtPath:documentsPath]; 

for (NSString *filename in fileEnumerator) { 
    // Do something with file 
} 

[manager release]; 
+0

pas sûr que son working.i a ajouté le code complet .. – rockey

+0

'fileExistsAtPath:' doesn Ne vérifiez pas si le répertoire 'export' contient des fichiers, il vérifie simplement s'il existe. puisque vous le créez sur la ligne précédente, la condition est toujours fausse. –

+0

ok..Merci Can. – rockey

0
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docsPath = [paths objectAtIndex:0]; 
NSString *srcFilePath = [NSString stringWithFormat:@"%@/export", self.documentsDir]; 
BOOL isDir; 
BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:srcFilePath] isDirectory:&isDir]; 
if (!exists && !isDir) { 
    [fileManager createDirectoryAtPath:srcFilePath 
     withIntermediateDirectories:NO 
         attributes:nil 
          error:nil]; 
    NSLog(@"File exists at path: %@", srcFilePath); 
    NSString *resZipfile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"zip" 
                inDirectory:@"pckg"]; 
    NSLog(@"zip file path ...%@", resZipfile); 
    NSData *mainBundleFile = [NSData dataWithContentsOfFile:resZipfile]; 
    [[NSFileManager defaultManager] createFileAtPath:srcFilePath 
              contents:mainBundleFile 
              attributes:nil];  
0

Version Swift 4:

guard let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first, 
     let fileEnumerator = fileManager.enumerator(atPath: path) else { 
     return 
    } 
    let fileNames = fileEnumerator.flatMap { $0 as? String } //Here You will have Array<String> with files in current folder and subfolders of your application's Document directory 
+0

Ajouter une explication ou la réponse n'est pas vraiment utile sinon. –

+0

@JaviV J'ai ajouté une explication dans les commentaires, mais si vous avez des questions, U R Bienvenue – Azon

Questions connexes