2013-11-25 57 views
0

我正在寻找文件夹中的png文件,并将它们的标题添加到数组中。调用函数数组后仍然是空的。你可以帮我吗?我是Obj-C的初学者。谢谢。正在搜索png文件iOS

我的功能:

-(void)getphotolist{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                NSUserDomainMask, YES); 

    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSBundle *myBundle = [NSBundle bundleWithPath:documentsDirectory]; 

    NSArray *mypngs = [myBundle pathsForResourcesOfType:@".png" 
               inDirectory:documentsDirectory]; 

    NSMutableArray *photo_array = [[NSMutableArray alloc] init]; 

    NSLog(documentsDirectory); 

    for (NSString *tString in mypngs) { 
     [photo_array addObject:tString]; 

     for (id obj in photo_array) 
     { 
      NSLog(@"obj: %@", obj); 
     } 
    } 
} 
+1

尝试[此](http://stackoverflow.com/a/14110339/940096) – Praveenkumar

+0

的NSLog(@ “%@”,documentsDirectory); - 应该是这样 –

+0

@ user3030843尝试我更新的答案。它应该给数组中的所有png文件名称。 –

回答

0

问题是在这里:

NSArray *mypngs = [myBundle pathsForResourcesOfType:@".png" 
             inDirectory:nil]; 

你应该有 “无” 在这里。如果您有任何自定义目录,它表示捆绑目录下的目录。

+0

非常感谢!这对我有帮助 – STBY

-1

请参阅该代码。

NSString *extension = @"JPEG"; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSArray *contents = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:nil]; 

NSMutableArray *jpegFiles = [NSMutableArray alloc]init]; 
NSMutableArray *jpegFilesPath=[NSMutableArray alloc]init]; 
NSString *filename; 
for (filename in contents) 
{ 
    if ([[filename pathExtension] isEqualToString:extension]) 
    { 
     [jpegFilesPath addObject:[NSString stringWithFormat:@"%@",[documentsDirectory stringByAppendingPathComponent:filename]]]; 
     NSLog(@"%@",jpegFilesPath); 
     [jpegFiles addObject:[UIImage imageWithContentsOfFile:[documentsDirectory stringByAppendingPathComponent:filename]]]; 

    } 
} 

希望这可以帮助你..!

+0

为什么要遍历所有文件并为所有字符串比较分配所有数组,以便准备好使用文件系统函数? –

+0

你已经提到你正在搜索文件夹中的多个PNG文件。所以显然需要迭代来获得所有png文件的路径。 – Mahesh

+0

顺便说一句。我不是那个问这个问题的人 - 反正为什么不使用pathsForResourcesOfType,因为它有问题? –

1

尝试此,

NSString * myBundle = [[NSBundle mainBundle] bundlePath]; 
NSFileManager *manager = [NSFileManager defaultManager]; 
NSDirectoryEnumerator *dir = [manager enumeratorAtPath: myBundle]; 

NSString *filename; 
NSMutableArray *photo_array = [[NSMutableArray alloc] init]; 
while ((filename = [dir nextObject])) { 


    if ([filename hasSuffix:@".png"]) { 


     [photo_array addObject:[filename stringByDeletingPathExtension]]; 


    } 

}