iPhone之文件操作
今天我们介绍iPhone的文件操作,包括创建,浏览,修改,删除等。
1.
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)。因此首先我们要确定对应的模拟器中的文件夹路径。可以通过下面的方法获得:
总结:
创建文件:
创建文件夹:
删除文件:
列出某一文件夹下的所有文件:
读取文件:
写入文件: