Mac:打开一个目录
1, 获得一个打开窗口对象 NSOpenPanel
NSOpenPanel *oPanel = [NSOpenPanel openPanel]; //快捷建立方式不用释放, 我还记得, 你呢? |
2, 设置这个对象的参数
[oPanel setCanChooseDirectories:YES]; //可以打开目录 [oPanel setCanChooseFiles:NO]; //不能打开文件(我需要处理一个目录内的所有文件) [oPanel setDirectory:NSHomeDirectory()]; //起始目录为Home |
3, 处理得到的数据
if ([oPanel runModal] == NSOKButton) { //如果用户点OK NSLog([[[oPanel URLs] objectAtIndex:0] absoluteString]); //我在console输出这个目录的地址 } |
4, 结果
[Switching to process 3330]
Running…
2010-06-17 22:49:02.583 XML2HTML[3330:a0f] file://localhost/Users/kingmtn/Music/
5, 简单的界面
只需要一个NSButton,并且将这个NSButton的缺省行为链接到我的对象方法-(IBAction)openDirectoryButtonClick:(id)sender上就可以了
*这是我XML2HTML工程的第一部分
[...] 总索引 « Mac:打开一个目录 [...]
[...] Mac:打开一个目录 [...]
我想问一下,iphone有没有这种弹窗
iphone不能直接打开/关闭文件, 所以没有…
不过你可以自己写阿~~
如果只是string文件, 那也不过是[NSString stringWithContentsOfFile:< #(NSString *)path#> encoding:< #(NSStringEncoding)enc#> error:< #(NSError **)error#>].
如果是raw data, 就是[NSData dataWithContentsOfFile:< #(NSString *)path#> options:< #(NSDataReadingOptions)readOptionsMask#> error:< #(NSError **)errorPtr#>]
恩,那你这样子还是写死了所有的文件路径,只不过是写到文件里,我捏,是想做一个支持网盘协议的上传下载的客户端,或者支持ftp协议的,这样子的话都需要在点上传下载按钮时弹出整个iphone(如果是电脑的话就是硬盘的了,像NSOpenPanel那样的)的文件目录,让用户自动选择路径,其实不是直接打开/关闭文件,最终上传下载时也是要读到文件流里
其实在c语言里不是有
char *path=[NSHomeDirectory() UTF8String];//起始目录为Home,转为c的字符串
DIR *dp;
struct dirent *dirp;
if ((dp = opendir(path)) == NULL) {
err_sys(“can`t open %s”, path);
}
while ((dirp = readdir(dp)) != NULL) {
printf(“%s\n”, dirp->d_name);
//打印出当前目录下的所有文件或文件夹,如果时文件夹的话,用户点一下,就把文件夹的路径作为当前的path,以后//的显示操作又是这样
}
closedir(dp);
PS:不知道这样行不行的通,上面那段代码是相当于unix的命令ls,我不了解iphone的文件目录结构,不知道行不行?
大哥,你博客的评论回复时间比我这边的晚了大概16个小时,服务器是不是部署在美国西部啊,还是你现在就在那边,呵呵:),算是私人问题了,不好意思..
嗯,在这边,你小子调查户口么?
没太理解你的思路… 不过
想ls,试试nsfilemanager就可以了, 我就在这个帖子后面的帖子里面有用,不过没尝试过在iphone上用.你可以尝试一下,可能会不好使, 因为iphone的沙箱设计, 试试吧