获取文件的文件夹里面,在iPhone文件目录(Get Files Inside a folder i

2019-10-17 01:27发布

我是新来的iPhone,

我做了其中一个应用程序,我下载了一本书,它存储了一个名为文件夹中book1Folder这是内部Document directory

现在我想在我的阵列中的所有书籍的名称,有2个书里面book1Folder但是当我写这篇文章的代码就说明我数组数为3。

这里是我的代码片段,

-(void)viewWillAppear:(BOOL)animated{
    NSString *files;
    NSString *Dir=[self applicationDocumentsDirectory];
    Dir=[Dir stringByAppendingPathComponent:@"book1Folder"];

    NSDirectoryEnumerator *direnum = [[NSFileManager defaultManager] enumeratorAtPath:Dir];

    Downloadedepubs = [[NSMutableArray alloc]init];
    while(files = [direnum nextObject])
    {
        if([[files pathExtension] isEqualToString:@"epub"])
            NSLog(@"files=%@",files);
            [Downloadedepubs addObject:files];
    }
}

我的日志显示2本书的唯一名字,但是当我遍历数组包含3个对象。

[Downloadedepubs ObjectAtIndex:0]=.DS_Store;
[Downloadedepubs ObjectAtIndex:1]=abcd;
[Downloadedepubs ObjectAtIndex:2]=pqrs;

什么是.DS_Store为什么会来吗?

任何帮助将不胜感激。

Answer 1:

Get your if block in curly brackets. It affects only first line after if.

Like below;

if([[files pathExtension] isEqualToString:@"epub"]) {
            NSLog(@"files=%@",files);
            [Downloadedepubs addObject:files];
}


Answer 2:

.DS_Store是在MAC一个隐伏文件来存储你的文件的消息在Folder.you可以将其删除



Answer 3:

尝试这个:

  NSDirectoryEnumerator*    e = [[NSFileManager defaultManager] enumeratorAtPath:yourPathhere];

// Ignore any files except XYZ.epub
for (NSString*  file in e)
{
    if (NSOrderedSame == [[file pathExtension] caseInsensitiveCompare:@"epub"])
    {
           // Do something with file.epub
               [Downloadedepubs addObject:files];

    }
    else if ([[[e fileAttributes] fileType] isEqualToString:NSFileTypeDirectory])
    {
        // Ignore any subdirectories
        [e skipDescendents];
    }
}


文章来源: Get Files Inside a folder in Document directory in iPhone