iPhone之文件操作

iPhone之文件操作



今天我们介绍iPhone的文件操作,包括创建,浏览,修改,删除等。




1.

新建一个View-based Application,名称为File:






2.

为了安全,每个 iPhone 程序都只能操作它专属的那个文件夹中的文件(即SandBox)。因此首先我们要确定对应的模拟器中的文件夹路径。可以通过下面的方法获得:

为 FileViewController.m 增加一个 printHomeDirectory 方法:

-(void)printHomeDirectory
{
	//得到当前的主目录
	NSString * home = [@"~" stringByExpandingTildeInPath];                
	NSLog(@"home = %@", home);
}


并在 viewDidLoad 中调用它,类似运行结果如下:



因此/Users/hutao/Library/Application Support/iPhone Simulator/4.0/Applications/E7FC7D78-8A54-44CE-9036-5182CDA0A0EF

就是该应用程序在模拟器中对应的文件夹路径,它就是该应用程序的跟路径




3.

按下图修改 FileViewController.xib:在第一行的 UITextField 中输入文件名,按 Create 键就会生成该文件:






4.

修改 FileViewController.h 如下:

//
//  FileViewController.h
//  File
//
//  Created by HuTao on 8/17/12.
//  Copyright __MyCompanyName__ 2012. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface FileViewController : UIViewController
{
	IBOutlet UITextField * textFieldFileName;
}


@property (retain, nonatomic) UITextField * textFieldFileName;


-(void)printHomeDirectory;
-(void)showAlertDialog:(NSString *)title message:(NSString *)msg;
-(BOOL)createFile:(NSString *)fileName;


-(IBAction)btnCreateFile:(id)sender;


@end


修改 FileViewController.m 如下:

//
//  FileViewController.m
//  File
//
//  Created by HuTao on 8/17/12.
//  Copyright __MyCompanyName__ 2012. All rights reserved.
//

#import "FileViewController.h"


@implementation FileViewController


@synthesize textFieldFileName;


-(void)printHomeDirectory
{
	//得到当前的主目录
	NSString * home = [@"~" stringByExpandingTildeInPath];                
	NSLog(@"home = %@", home);
}


-(void)showAlertDialog:(NSString *)title message:(NSString *)msg
{
	UIAlertView * showSelection;    
  
	showSelection = [[UIAlertView alloc]    
					 initWithTitle:title    
					 message:msg    
					 delegate:nil    
					 cancelButtonTitle:@"确定"    
					 otherButtonTitles:nil];       

	[showSelection autorelease];    
	[showSelection show];
}


-(BOOL)createFile:(NSString *)fileName
{
	//创建文件管理器
	NSFileManager * fileManager = [NSFileManager defaultManager];    
	
	//得到当前的主目录
	NSString * home = [@"~" stringByExpandingTildeInPath];
	//将主目录和文件的名称拼起来
	NSString * path = [home stringByAppendingPathComponent:fileName];
	
	//创建文件fileName文件名称,contents文件的内容,如果开始没有内容可以设置为nil
	//attributes是文件的属性,初始为nil
	return [fileManager createFileAtPath:path contents:nil attributes:nil];
}


-(IBAction)btnCreateFile:(id)sender
{
	NSString * fileName = textFieldFileName.text;
	
	BOOL b = [self createFile:textFieldFileName.text];
	
	NSString * str = (b ? @"创建成功" : @"创建失败");

	NSString * msg = [[NSString alloc]initWithFormat:@"%@ %@", fileName, str];
	
	[self showAlertDialog:@"创建文件" message:msg];	
}



- (void)viewDidLoad
{
	[super viewDidLoad];
	
	[self printHomeDirectory];
}


- (void)viewDidUnload
{
	textFieldFileName = nil;
}


- (void)dealloc
{
	[super dealloc];
	
	[textFieldFileName release];
}


@end



5.

将 textFieldFileName 和 UITextFiled 控件连接,将 Create按钮和 btnCreateFile 相连接



6.

运行效果如下:






再看看第二步获得的那个文件夹里,已经生成该文件了,说明文件创建成功了!




7.

接下去不一一详述了,Demo 中包含了删除文件,浏览文件,修改文件等功能:




经过测试发现,如果输入的文件夹名诸如 a/b/c/d ,则会先创建目录a,然后在目录a中创建目录b,以此类推。这对于创建多级目录很方便。




8.





9.





10.





总结:

创建文件:

创建文件夹:

删除文件:

列出某一文件夹下的所有文件:

读取文件:

写入文件:



































1.


为了安全,每个 iPhone 程序都只能操作它专属的那个文件夹中的文件(即SandBox)。因此首先我们要确定对应的模拟器中的文件夹路径。可以通过下面的方法获得:



总结:

创建文件:

创建文件夹:

删除文件:

列出某一文件夹下的所有文件:

读取文件:

写入文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值