我是Cocoa的新手。我试图在我的应用程序中扫描计算机上的音乐文件夹。但我有一些逻辑。 我需要从/ Users开始扫描,例如,如果我有/ Users/music/anotherMusic和/ Users/music/music2/music3,我需要只能获得包含音乐(/用户/音乐)。还需要继续在子文件夹中迭代以在根文件夹(/ Users/music)中计算音乐文件。等用同样的逻辑继续扫描整个computer.And结果应该显示在表格中,例如结果应该是这样的如何获取可可中包含音乐(mp3)的所有文件夹路径?
- - /用户/我的电脑/ iTunes的 - 77个文件夹,500个的音乐文件
- /用户/我的电脑/文件/音乐-15音乐文件夹,400个的音乐文件
- /用户/我的电脑/下载/媒体-20音乐文件夹,325个音乐
文件(的数所有苏有音乐的b目录)
我该怎么做?我做了什么,它在下面的代码中。但是它一直在深入,给我每条包含.mp3音乐的路径,但我需要上面提到的逻辑。
NSFileManager *manager = [NSFileManager defaultManager];
NSDirectoryEnumerator *direnum = [manager enumeratorAtPath:@"/Users/"];
NSString * file;
while((file=[direnum nextObject]))
{
NSString * FullPath=[NSString stringWithFormat:@"/Users/%@",file];
if ([file hasSuffix:@".mp3"])
{
///gives a music file path that contains mp3, or I can cut last part, and get the folder path. But no logic as should be.
}
}
任何想法,或帮助赞赏。谢谢。
谢谢它非常好,非常快!但有一个问题我不明白。它按照字母顺序扫描,如果你有文件夹/用户/音乐/音乐2 /音乐3,它可以很好地显示/用户/音乐。但是如果你有/用户/音乐和音乐歌曲,以字母'A'或任何大'm'开头,结果将是/ Users/music和/ Users/music/music2,但它应该只是父目录包含音乐或音乐的子文件夹。我如何解决它?非常感谢 – User1234
确实有一点小错误。在浏览之前,您必须检查文件列表以检查comboBreak布尔值。我会编辑它。 – Panos
非常感谢Panos。我在编辑后试过,但仍然是同样的问题。看看我得到“/用户/苹果/桌面/ w/a /音乐”= 16; “/ Users/Apple/Desktop/w/a/music/d”= 3; “/ Users/Apple/Desktop/w/a/music/d/aa/a/asdfasdf/untitled folder/a”= 1; “/ Users/Apple/Desktop/w/aaa”= 1;但它应该只有“/用户/苹果/桌面/ W”它有时很好,如果按字母顺序是正确的。我试图解决它,但我cound't,我感谢您的帮助。 – User1234