好坑爹的MAC
本人新手,最新学习Objective-c。
有这么一个例子:
实例用NSFileManager 获取目录中jpeg类型的图片。
本人愚钝,也不知道那里有jpeg图片,就从网上下了几个图片,存放到用户/图片里了,为了方便不是。
一下教科书上的代码
//照着教科书上的例子
// main.m
// FileWalker
//
// Created by djy dda on 12-7-2.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
}
NSFileManager *manager=[NSFileManager defaultManager];
///于是乎看到我电脑里有个图片文件夹啊,就测试这个吧。
NSString *home=[@"~/图片" stringByExpandingTildeInPath];
NSLog(@"路径-》%@",home);//默认是finder中设备名称/用户/用户名称/图片
[str1 writeToFile:home1 atomically:YES encoding:NSStringEncodingConversionAllowLossy error:Nil];
NSDirectoryEnumerator *direum=[manager enumeratorAtPath:home];
NSMutableArray *files=[NSMutableArray arrayWithCapacity:42];
NSString *fileName;
///结果发现 direum 是空的。很是无语。。
while (fileName=[direum nextObject]) {
if([[fileName pathExtension ]isEqualTo:@"jpeg"]) {
[files addObject:fileName];
}
}
NSEnumerator *fileenum;
fileenum =[files objectEnumerator];
while (fileName=[fileenum nextObject]) {
NSLog(@"filename->%@",fileName);
}
return 0;
}
极度郁闷不知道那里原因,群里高手不屑回答我小菜鸟的问题。继续查。。

继续查,排除原因。

最终
将路径
NSString *home=[@"~/图片" stringByExpandingTildeInPath];
修改成
NSString *home=[@"~" stringByExpandingTildeInPath];
发现 目录~/图片的图片也搜索出来了。。很是郁闷,发现路径英文的Pictures。真坑爹啊
正确用法是
NSString *home=[@"~/Pictures" stringByExpandingTildeInPath];
以防教训,特记录坑爹事件,不知道大家有没有被Mac坑过。
浙公网安备 33010602011771号