【问题标题】:does documents directory order files? IOS文件目录命令文件吗? IOS
【发布时间】:2013-02-10 20:16:39
【问题描述】:

我以这种方式将许多不同的图像保存到文档目录中:

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

int num = arc4random() % 100000000000000;

NSString* path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat:@"%dtest.png", num]];
NSData* data = UIImagePNGRepresentation(image);
[data writeToFile:path atomically:YES];

然后我是这样读取文件的:

NSString *stringPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES)objectAtIndex:0];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//NSString* FinalPath = [documentsDirectory stringByAppendingPathComponent: @"Images/"];

NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:&error];

for(int i=0;i<[filePathsArray count];i++)
{
    NSString *strFilePath = [filePathsArray objectAtIndex:i];
    if ([[strFilePath pathExtension] isEqualToString:@"jpg"] || [[strFilePath pathExtension] isEqualToString:@"png"] || [[strFilePath pathExtension] isEqualToString:@"PNG"])
    {
        NSString *imagePath = [[stringPath stringByAppendingFormat:@"/"] stringByAppendingFormat:strFilePath];
        NSData *data = [NSData dataWithContentsOfFile:imagePath];
        if(data)
        {

            @try {

               NSString *nameOfGroup = [array objectAtIndex:i];

                MWPhoto *photo;
                photo= [MWPhoto photoWithFilePath:imagePath];
                [finalPhotoArray addObject:photo];
            }
            @catch (NSException *exception) {

                NSString *nameOfGroup = @"No description available for this sheet";

                MWPhoto *photo;
                photo= [MWPhoto photoWithFilePath:imagePath];
                [finalPhotoArray addObject:photo];

            }


        }
    }

问题是图像没有按照我保存文件的顺序正确排序,但它们被混淆了。有没有办法订购它们?当我保存到文档目录时,文件是否混淆了?

【问题讨论】:

  • 如果您可以对文件的路径数组进行排序,为什么还需要按顺序排列文件?你知道,硬盘不是按字母顺序排列的。
  • 我需要它们,因为我有一个标题数组,每个标题都是有序的,并且与一个图像相对应:例如1 加 1、2 加 2...
  • 提供您可以按字母顺序排列的文件名,或者根据需要进行排序。

标签: ios objective-c nsfilemanager


【解决方案1】:

对于contentsOfDirectoryAtPath:error:(这是subpathsOfDirectoryAtPath:error: 的非递归等效项),文档说:

返回数组中文件的顺序未定义。

如果您想将图像路径与标题相关联,您应该将该关联存储在某处。如果您将字幕存储在 NSString 的 NSArray 中,则可以将它们存储在 NSDictionaries 的 NSArray 中。每个字典都有一个键 @"imagePath" 和 @"caption"。

此外,在处理表示路径的 NSString 时,您应该使用文档中 Working with Paths 下列出的方法。 (例如 stringByAppendingPathComponent: 而不是 stringByAppendingFormat:

【讨论】:

    猜你喜欢
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 2010-10-13
    • 2011-05-23
    • 2017-07-09
    • 2013-05-04
    • 2010-11-02
    相关资源
    最近更新 更多