您的位置:首页 > 其它

iPhone之文件操作

2012-08-17 18:42 369 查看
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)。因此首先我们要确定对应的模拟器中的文件夹路径。可以通过下面的方法获得:

总结:

创建文件:

创建文件夹:

删除文件:

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

读取文件:

写入文件:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: