文件处理

目录方法: 

- (NSString *)currentDirectoryPath 
获取当前目录 

- (BOOL)changeCurrentDirectoryPath:(NSString *)path 
更改当前目录 

- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error 
复制目录或文件 

- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error 
创建一个新的目录 

- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory 
测试文件是不是目录 

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error 
列目录(不会递归) 
- (NSDirectoryEnumerator *)enumeratorAtPath:(NSString *)path 
枚举目录内容(会递归) 
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error 
删除一个文件,文件夹,链接 

- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error 
移动(重命名)目录到一个指定的路径 

NSPathUtilities.h 包含了NSString的函数和分类扩展,用于操作路径名. 
#import <Foundation/NSObject.h> 
#import <Foundation/NSAutoreleasePool.h> 
#import <Foundation/NSString.h> 
#import <Foundation/NSFileManager.h> 
#import <Foundation/NSArray.h> 
#import <Foundation/NSPathUtilities.h> 

int main (int argc, const char * argv[]) { 

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 

NSFileManager *fm; 
//NSFileManager对象 
NSString *dirName = @"testdir"; 
NSString *path; 

fm = [[NSFileManager alloc]init]; 

path = [fm currentDirectoryPath]; 
NSLog(@"%@",path); 
//获取当前目录路径. 

if ([fm createDirectoryAtPath:dirName withIntermediateDirectories:YES attributes:nil error:NULL] == NO) { 
NSLog(@"Couldn't create dir"); 
return 1; 

//新建目录 

if ([fm moveItemAtPath:dirName toPath"newdir" error:NULL] == NO) { 
NSLog(@"Directory rename failed"); 
return 2; 

//重命名目录 

if ([fm changeCurrentDirectoryPath"newdir"] == NO) { 
NSLog(@"change directory failed"); 
return 3; 

//修改路径到新目录 

path = [fm currentDirectoryPath]; 
//返回当前路径 

NSLog(@"Current directory path is %@",path); 
//打印 

NSLog(@"successful"); 

[pool drain]; 
return 0; 


枚举目录中的内容: 

NSPathUtilities.h 包含了NSString的函数和分类扩展,用于操作路径名. 
#import <Foundation/NSObject.h> 
#import <Foundation/NSAutoreleasePool.h> 
#import <Foundation/NSString.h> 
#import <Foundation/NSFileManager.h> 
#import <Foundation/NSArray.h> 
#import <Foundation/NSPathUtilities.h> 

int main (int argc, const char * argv[]) { 
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 

NSFileManager *fm; 
NSString *path; 
NSDirectoryEnumerator *dirEnum; 
NSArray *dirArray; 

fm = [[NSFileManager alloc]init]; 
path = [fm currentDirectoryPath]; 
//当前目录 
dirEnum = [fm enumeratorAtPath:path]; 
//开始枚举过程,将其存入dirEnum中. 
NSLog(@"路径:%@",path); 
//打印当前路径 

while ((path = [ dirEnum nextObject]) != nil) { 
NSLog(@"%@",path); 

//向dirEnum发送nextObject消息,返回下一个文件路径,当没有可供枚举时,返回nil. 
//enumeratorAtPath:方法会递归打印. 

dirArray = [fm contentsOfDirectoryAtPath:[fm currentDirectoryPath] error:NULL]; 
NSLog(@"内容为:"); 
//使用contentsOfDirectoryAtPath:方法枚举当前路径中的文件并存入数组dirArray. 

for (path in dirArray) 
NSLog(@"%@",path); 

//快速枚举数组中的内容并打印. 

[pool drain]; 
return 0; 


使用路径: 
NSPathUtilities.h 包含了NSString的函数和分类扩展,用于操作路径名. 
#import 
#import 
#import 
#import 
#import 
#import 

int main (int argc, const char * argv[]) { 
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 

NSFileManager *fm; 
NSString *fName = @"path.m"; 
NSString *upath = @"~s0s0/123/xxx/../321/./path.m"; 
NSString *path, *tempdir, *extension, *homedir, *fullpath; 
NSArray *components; 

fm = [[NSFileManager alloc]init]; 
tempdir = NSTemporaryDirectory(); 
//NSTemporaryDirectory()函数返回可以用来创建临时文件的目录路径名,如果要创建文件,完成任务后要删除;确保文件名是唯一的. 

NSLog(@"临时文件夹路径为:%@",tempdir); 

path = [fm currentDirectoryPath]; 
//返回当前目录路径 

NSLog(@"父目录名: %@",[path lastPathComponent]); 
//lastPathComponent方法用与提取路径中最后一个目录名. 

fullpath = [path stringByAppendingPathComponent:fName]; 
//stringByAppendingPathComponent:方法将文件名插入到路径的末尾,这样就能显示一个文件的完整路径. 
NSLog(@"完整路径为:%@ to %@",fName,fullpath); 
//打印一个文件的完整路径. 

extension = [fullpath pathExtension]; 
//pathExtension方法返回一个完整路径中的文件扩展名,如果没有扩展名,就返回空字符. 
NSLog(@"extension for %@ is %@ ",fullpath, extension); 

homedir = NSHomeDirectory(); 
//NSHomeDirectory()函数返回当前用户的主目录 
//NSHomeDirectoryForUser(username)函数可以提供用户名做参数,并返回主目录名 
NSLog(@"主目录为 : %@",homedir); 

components = [homedir pathComponents]; 
//pathComponents方法返回一个数组,数组中包含一个路径中的每个组成部分. 

for (path in components) 
NSLog(@"%@",path); 
//依次输出数组components中保存的元素. 

NSLog(@"%@ -> %@",upath, [upath stringByStandardizingPath]); 
//stringByStandardizingPath方法将原路径中的代字符转化为完整路径. 
//如果是路径名字中出现代字符,可以使用stringByExpandingTildeInPath方法. 
[pool drain]; 
return 0; 

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 4 实验2 一个简单的Java Applet程序 4 实验3 联合编译 5 上机实践2 基本数据类型与控制语句 6 实验1 输出希腊字母表 6 实验2 回文数 6 实验3 猜数字游戏 8 上机实践3 类与对象 9 实验1 三角形、梯形和圆形的类封装 9 实验2 实例成员与类成员 12 实验3 使用package语句与import语句 13 上机实践4 继承与接口 15 实验1 继承 15 实验2 上转型对象 17 实验3 接口回调 18 上机实践5 字符串、时间与数字 19 实验1 String类的常用方法 19 实验2 比较日期的大小 21 实验3 处理大整数 22 上机实践6 组件及事件处理 23 实验1 算术测试 23 实验2 信号灯 25 实验3 布局与日历 28 上机实践7 组件及事件处理2 31 实验1 方程求根 31 实验2 字体对话框 34 实验3 英语单词拼写训练 37 上机实践8 多线程 41 实验1 汉字打字练习 41 实验2 旋转的行星 43 实验3 双线程接力 47 上机实践9 输入输出流 50 实验1 学读汉字 50 实验2 统计英文单词字 53 实验2 读取Zip文件 56 上机实践10 Java 中的网络编程 57 实验1 读取服务器端文件 57 实验2 使用套接字读取服务器端对象 59 实验3 基于UDP的图像传输 62 上机实践11 数据结构 66 实验1 扫雷小游戏 66 实验2 排序与查找 70 实验3 使用TreeSet排序 72 上机实践12 java Swing 74 实验1 JLayeredPane分层窗格 74 实验2 使用表格显示日历 75 实验3 多文档界面(MDI) 78 上机实践1 初识Java 实验1 一个简单的应用程序 2.模板代码 Hello.java package 实验一; public class Hello { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("你好,很高兴学习Java"); //命令行窗口输出"你好,很高兴学习Java" A a=new A(); a.fA(); } } class A { void fA() {System.out.println("we are student"); } } 实验2 一个简单的Java Applet程序 2.模板代码 FirstApplet.java import java.applet.*; import java.awt.*; public class FirstApplet extends Applet { public void paint(Graphics g) { g.setColor(Color.blue); g.drawString("这是一个Java Applet 程序",10,30);//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋体",Font.BOLD,36)); g.drawString("我改变了字体",20,50);//在Java Applet中绘制一行文字:“我改变了字体” } }实验3 联合编译 2.模板代码 public class MainClass { public static void main (String args[ ]) { System.out.println("你好,只需编译我") ; //命令行窗口输出"你好,只需编译我" A a=new A(); a.fA(); B b=new B(); b.fB(); } } public class A { void fA() {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值