3

在我的应用程序中,我使用 NSFileManager 使用以下代码获取文件夹中的文件数

 NSFileManager *manager=[NSFileManager defaultManager];
 NSString *path;
 int numberofFiles=[[manager contentsOfDirectoryAtPath:path error:nil] count];
 numberofFiles=numberofFiles-1; //number of files except .DS_Store

但我的问题是文件 .DS_Store 并不总是默认创建,那时我得到的计数少于该目录中实际存在的文件的计数。

那么 NSFileManager 中是否有一种方法可以返回不包括 .DS_Store 的文件数组,或者我必须使用 -IsEqualToString 方法手动排除,否则是否有任何选项可以创建没有 .DS_Store 文件的新目录。

4

2 回答 2

2

显式查找.DS_Store文件并在找到时调整计数:

NSFileManager *manager=[NSFileManager defaultManager];
NSString *path = ...;       // Presumably this is a valid path?
NSArray *contents = [manager contentsOfDirectoryAtPath:path error:nil];
NSUInteger numberOfFiles = [contents count];
if ([contents indexOfObject:@".DS_Store"] != NSNotFound)
    numberOfFiles--;
于 2012-11-01T09:41:34.463 回答
0

试试这个..它对我有用..

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *imageFilenames = [manager contentsOfDirectoryAtPath:documentsDirectory error:nil];

for (int i = 0; i < [imageFilenames count]; i++)
    {

    NSString *imageName = [NSString stringWithFormat:@"%@/%@",documentsDirectory,[imageFilenames objectAtIndex:i] ];

        if (![[imageFilenames objectAtIndex:i]isEqualToString:@".DS_Store"])
        {
          UIImage *myimage = [UIImage imageWithContentsOfFile:imageName];
          UIImageView *imageView = [[UIImageView alloc] initWithImage:_myimage];
        }
    }
于 2013-11-19T04:03:29.903 回答