Cocoa文件管理

来源:互联网 发布:淘宝神笔是什么意思 编辑:程序博客网 时间:2024/05/21 12:46

打开查看文件

NSOpenPanel *openPanel=[NSOpenPanel openPanel];

[openPanel setTitle:@"Choose a File or Folder"];//setTitle为NSWindow的方法,它是openPanel 的父类

[openPanel setCanChooseDirectories:YES];//默认不可以选文件夹,可选任何格式文件

NSInteger i=[openPanel runModal];//显示openPanel

if(i==NSOKButton){

NSString *theFilePath=[openPanel fileName];

//给outlets(filePathDisplay)赋值:[filePathDisplay setStringValue:theFilePath]

NSFileManager *theManager=[NSFileManage defaultManager];

NSString *theFileName=[theManage displayNameAtPath:theFilePath];

if([theManager fileExistsAtPath:theFilePath]){

//文件存在

}

if( [theManager fileExistsAtPath:theFilePath isDirectory:&isFolder] ){

//表示选中的是一个目录(文件夹)

}

NSDictionary *theFileAttributes=[theManager fileAttributesAtPath:theFilePath traverseLink:YES];

//NSDictionary是一个数据结构,其中包括:文件大小,创建日期,修改日期

//由于只是读数据,则不用可变的NSMutableDictionary

NSNumber *theFileSize=[theFileAttributes objectForKey:NSFileSize];

NSDate *theModificationDate=[theFileAttributes objectForKey:NSFileModificationDate];

NSDate *theCreationDate=[theFileAttributes objectForKey:NSFileCreationDate];

 

//查看文件图标(要先用NSFileWrapper把文件数据放入内存)

NSFileWrapper *theFileWrapper=[[NSFileWrapper alloc] initWithPath:theFilePath] autorelease];

NSImage *theIcon=[theFileWrapper icon];

//fileIconDisplay为Interface上的NSImageView对象(Library中的Image well)

[fileIconDisplay setImageScaling:NSScaleToFit];

[fileIconDisplay setImage:theIcon];

}

 

可以实现对对文档(Text),图片,以及多媒体文件的操作

复制文件

NSString *theDestination=[[NSHomeDirectory()//NSHomeDirectory是Foundation的方法

stringByAppendingPathComponent:@"Desktop"]//文件保存的目录

stringByAppendingPathComponent:theFileName];

[theManager copyPath:theFilePath toPath:theDestination handler:nil];

移动(剪切)文件

[theManager movePath:theFilePath toPath:theDestination handler:nil];

删除文件

NSInteger n=NSRunAlertPanel(

[NSLocalizedString(@"Are you sure you want to delete the file?",nil),

[NSLocalizedString(@"You cannot undo this deletion.",nil),

[NSLocalizedString(@"Yes",nil),

[NSLocalizedString(@"No",nil),

nil);

if(n==NSAlertDefaultReturn){

[theManager removeFileAtPath:theFilePath handler:nil];

}

创建文件夹

NSString *theDestination=[[NSHomeDirectory()

stringByAppendingPathComponent:@"Desktop"]

stringByAppendingPathComponent:@"MyNewFolder"];

[theManager createDirectoryAtpath:theDestination

attributes:nil];//第二个参数设置文件夹的属性

原创粉丝点击