【发布时间】:2011-08-16 14:35:44
【问题描述】:
我正在尝试使用 NSFileManager 从目录中删除特定文件。我想忽略目录中隐藏的 .DS_Store 和 Icon 文件(我正在检查的文件夹必须有一个自定义图标),但是我也经常不小心删除它们。现在,我正在做以下事情:
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *dirContents = [manager contentsOfDirectoryAtPath:[selectedFolder stringValue] error:nil];
for (int i = 0; i < [dirContents count]; i++)
{
NSString *theFile = [dirContents objectAtIndex:i];
if([theFile isEqualToString:@".DS_Store"] || [theFile isEqualToString:@"Icon?"] || [theFile isEqualToString:@"Icon"])
{
continue;
}
//do manipulations on files here
}
[manager release];
但是,我的 if 语句中没有匹配 .DS_Store 和 Icon 文件。此外,当我在 Finder 中显示隐藏文件时,图标文件称为“图标”。但是,在终端的该目录中执行 ls 会打印出“Icon?”。
如何在我的代码中正确解析这些文件?
谢谢
编辑: 所以它实际上成功地忽略了 .DS_Store 文件,但 Icon 文件仍然通过了 if 语句。
【问题讨论】:
-
如果您在设置
theFile之后立即写入NSLog(@"%@", theFile);,这些图标文件名是否与您在if中测试时完全一样? -
+1 巴伐利亚。可以肯定的是,您在终端中看到的
?实际上不是 ASCII?
标签: objective-c cocoa parsing icons nsfilemanager