IOS中NSFileManager的操作 [Z]
2011年11月09日
1、文件的创建
-(IBAction) CreateFile { //对于错误信息
NSError *error;
// 创建文件管理器
NSFileManager *fileMgr = [NSFileManager defaultManager];
//指向文件目录
NSString *documentsDirectory= [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
//创建一个目录
[[NSFileManager defaultManager] createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil];
// File we want to create in the documents directory我们想要创建的文件将会出现在文件目录中
// Result is: /Documents/file1.txt结果为:/Documents/file1.txt
NSString *filePath= [documentsDirectory
stringByAppendingPathComponent:@"file2.txt"];
//需要写入的字符串
NSString *str= @"iPhoneDeveloper Tips\nhttp://iPhoneDevelopTips,com";
//写入文件
[str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
//显示文件目录的内容
NSLog(@"Documentsdirectory: contentsOfDirectoryAtPath:documentsDirectory error:&error]);
}
2、对文件重命名
对一个文件重命名
想要重命名一个文件,我们需要把文件移到一个新的路径下。下面的代码创建了我们所期望的目标文件的路径,然后请求移动文件以及在移动之后显示文件目录。
//通过移动该文件对文件重命名
NSString *filePath2= [documentsDirectory
stringByAppendingPathComponent:@"file2.txt"];
//判断是否移动
if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)
NSLog(@"Unable to move file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror: &error]);
3、删除一个文件
为了使这个技巧完整,让我们再一起看下如何删除一个文件:
//在filePath2中判断是否删除这个文件
if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)
NSLog(@"Unable to delete file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror: &error]);
一旦文件被删除了,正如你所预料的那样,文件目录就会被自动清空:
这些示例能教你的,仅仅只是文件处理上的一些皮毛。想要获得更全面、详细的讲解,你就需要掌握NSFileManager文件的知识。 4、删除目录下所有文件
//获取文件路径
- (NSString *)attchmentFolder{
NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDir ectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [document stringByAppendingPathComponent:@"Attchments"];
NSFileManager *manager = [NSFileManager defaultManager];
if(![manager contentsOfDirectoryAtPath:path error:nil]){
[manager createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:nil];
}
return path;
}
--清除附件
BOOL result = [[NSFileManager defaultManager] removeItemAtPath:[[MOPAppDelegate instance] attchmentFolder] error:nil];
IPhone中获取文件各项属性方法
-(NSData *)applicationDataFromFile:(NSString *)fileName
{
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDir ectory, NSUserDomainMask,YES);
NSString *documentsDirectory =[paths objectAtIndex:0];
NSString *appFile =[documentsDirectory stringByAppendingPathComponent:fileName];
NSData *data =[[[NSData alloc]initWithContentsOfFile:appFile]autorelease];
return data;
} -(void)getFileAttributes
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *path = @"/1ct.rtf";
NSDictionary *fileAttributes = [fileManager fileAttributesAtPath:path traverseLink:YES];
NSLog(@"@@");
if (fileAttributes != nil) {
NSNumber *fileSize;
NSString *fileOwner, *creationDate;
NSDate *fileModDate;
//NSString *NSFileCreationDate //文件大小
if (fileSize = [fileAttributes objectForKey:NSFileSize]) {
NSLog(@"File size: %qi\n", [fileSize unsignedLongLongValue]);
}
//文件创建日期
if (creationDate = [fileAttributes objectForKey:NSFileCreationDate]) {
NSLog(@"File creationDate: %@\n", creationDate);
//textField.text=NSFileCreationDate;
}
//文件所有者
if (fileOwner = [fileAttributes objectForKey:NSFileOwnerAccountName]) {
NSLog(@"Owner: %@\n", fileOwner);
}
//文件修改日期
if (fileModDate = [fileAttributes objectForKey:NSFileModificationDate]) {
NSLog(@"Modification date: %@\n", fileModDate);
}
}
else {
NSLog(@"Path (%@) is invalid.", path);
}
}
///////////////////
文件类型,文件缩略图呢???
============================
//获取当前应用程序的主目录
NSString directoryPath =NSHomeDirectory();
//获取当前目录下的所有文件
NSArray directoryContents = [[NSFileManager defaultManager] directoryContentsAtPath: directoryPath];
//获取一个文件或文件夹
NSString *selectedFile = (NSString*)[directoryContents objectAtIndex: indexPath.row];
//拼成一个完整路径
[directoryPath stringByAppendingPathComponent: selectedFile];
BOOL isDir;
//判断是否是为目录
if ([[NSFileManager defaultManager] fileExistsAtPath:selectedPath isDirectory:&isDir] && isDir)
{//目录
}
else
{//文件
}
//日期格式化
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
//数字格式化
NSNumberFormatter *numberFormatter =[[NSNumberFormatter alloc] init];
[numberFormatter setPositiveFormat: @"#,##0.## bytes"];
//获取文件属性
NSDictionary *fileAttributes =[[NSFileManager defaultManager] fileAttributesAtPath: directoryPath traverseLink: YES];
//获取文件的创建日期
NSDate *modificationDate = (NSDate*)[fileAttributes objectForKey: NSFileModificationDate];
//获取文件的字节大小
NSNumber *fileSize = (NSNumber*)[fileAttributes objectForKey: NSFileSize];
//格式化文件大小
nsstring A = [numberFormatter stringFromNumber: fileSize];
//格式化文件创建日期
NSstring B =[dateFormatter stringFromDate: modificationDate];
[numberFormatter release];
[dateFormatter release];
//读取文件内容操作
- (void) loadFileContentsIntoTextView {
//通过流打开一个文件
NSInputStream *inputStream = [[NSInputStream alloc] initWithFileAtPath: filePath];
[inputStream open];
NSInteger maxLength = 128; uint8_t readBuffer [maxLength]; //是否已经到结尾标识
BOOL endOfStreamReached = NO;
// NOTE: this tight loop will block until stream ends
while (! endOfStreamReached)
{
NSInteger bytesRead = [inputStream read: readBuffer maxLength:maxLength];
if (bytesRead == 0)
{//文件读取到最后
endOfStreamReached = YES;
}
else if (bytesRead == -1)
{//文件读取错误
endOfStreamReached = YES;
}
else
{
NSString *readBufferString =[[NSString alloc] initWithBytesNoCopy: readBuffer length: bytesRead encoding: NSUTF8StringEncoding freeWhenDone: NO];
//将字符不段的加载到视图
[self appendTextToView: readBufferString];
[readBufferString release];
}
}
[inputStream close];
[inputStream release];
}
异步文件读取 在网络方面,网络的不可靠性可能会造成上面方法的阻塞
nsstream是可以异步工作的。可以注册一个在流中有字节可读的时候回调的函数,如果没有可读的,就不要阻塞住
发表评论
-
高中新课程作业本 地理 必修1 参考答案上
2012-01-20 11:29 1396高中新课程作业本 地理 ... -
永州市2011年下期期末质量检测试卷高一语文及参考答案
2012-01-20 11:29 956永州市2011年下期期末质量检测试卷高一语文及参考答案 20 ... -
方言――水(上) K}[V mxzw
2012-01-20 11:29 962方言――水(上) K}[V mxzw ... -
高中英语语法复习――定语从句
2012-01-20 11:29 654高中英语语法复习――定语从句 2012年01月12日 更 ... -
ASP.NET MVC下基于异常处理的完整解决方案
2012-01-19 16:08 770ASP.NET MVC下基于异常处 ... -
CAN总线学习笔记(转)
2012-01-19 16:08 3541CAN总线学习笔记(转) 201 ... -
Android的MediaPlayer错误[转载]
2012-01-19 16:08 2377Android的MediaPlayer错误[转载] 2011 ... -
[转载]PHP - PHP.ini配置中文解释
2012-01-19 16:07 836[转载]PHP - PHP.ini配置中 ... -
山东科技大学一名教师被曝强迫学生花钱买成绩
2012-01-17 05:59 737山东科技大学一名教师 ... -
崔永元缺席中国慈善年会 给农民工主持春晚
2012-01-17 05:59 598崔永元缺席中国慈善年 ... -
2012-1-10
2012-01-17 05:59 5292012-1-10 2012年01月10日 var so ... -
地产大佬集体看跌2012房价 黄怒波称最高降30%
2012-01-17 05:59 754地产大佬集体看跌2012房价 黄怒波称最高降30% 2012 ... -
春节将到回家过年的朋友请注意公交防扒要听懂司机[暗语]
2012-01-17 05:58 584春节将到回家过年的朋 ... -
远古的孔加工工具(转)
2012-01-16 04:46 601远古的孔加工工具(转) ... -
辜鸿铭
2012-01-16 04:46 553辜鸿铭 2011年12月01日 ... -
享不了洪福就享清福
2012-01-16 04:46 590享不了洪福就享清福 20 ... -
读《弟子规》后感
2012-01-16 04:46 597读《弟子规》后感 2011年12月01日 《 ...
相关推荐
IOS应用源码——NSFileManager_DirectoryLocations.rar
demo 地址 github.com/pro648/BasicDemos-iOS/tree/master/FileManager 详细介绍:github.com/pro648/tips/wiki/使用NSFileManager管理文件系统 - Bundle Container目录包含应用程序包。 - Data Container目录...
SwiftFilePath, 简单而强大的NSFileManager封装 SwiftFilePath 简单而强大的NSFileManager封装。用法创建实例你可以从字符串创建 Path 对象。let fooDir = Path("/path/to/fooDir")//
1.利用NSFileManager的最进本的用法操作另外一个项目,同时修改所有.m文件的内容 2.同时修改多个文件夹的名称 github 地址 https://github.com/elite-kai/ELFileManager
主要介绍了详解iOS学习笔记(十七)——文件操作(NSFileManager),具有一定的参考价值,有需要的可以了解一下。
FCFileManager, 在NSFileManager上简化文件管理,iOS文件管理器 FCFileManager 在NSFileManager上为文件管理器提供英镑的。 为执行最常见的操作提供了许多 static 方法,只需几行代码。 默认情况下,它在文档目录中...
iOS开发_iphone开发_文件系统NSFileManager_如何创建、重命名和删除文件
FCFileManager iOS File Manager位于NSFileManager之上,用于简化文件管理。 它提供了许多静态方法,只需几行代码即可执行最常见的操作。 默认情况下,它可以在Documents目录中工作,以允许使用相对路径,但是可以在...
iOS文件管理笔记,沙盒,NSFileManager,NSFileHandle
简单实用的iOS文件工具类 ...HYFileManager一个基于NSFileManager的文件操作类,它提供一系列的静态方法,只用少量的代码,来处理经常需要处理的文件操作,使得工作更加方便快捷。 具体使用示例请查看项目介绍: ...
新旧objective-cNSFileManager的差异。
NSFileManager NSObject NSSet NSString NSTimer NSURL UIKit UIBezierPath UIButton UIColor UIDevice UIImage UIImageView UILable UINavigationController UIResponder UIScrollView UISearchBar ...
用NSCoding持久化数据,以及如何用NSFileManager来有效地保存文件。
介绍iphone开发过程中会使用到的NSFileManager这一个类中的各个函数
针对NSFileManager的文件管理类工具,提供了文件操作的便携式封装。支持pod方式集成使用:pod 'ZYFileTool',或者直接将Classes里面的文件拖入项目使用。
iphone开发之NSFileManager_Class.pdf
该源码实现一款可以支持NSFileManager查看本地文件功能,几乎可以查看所有的文件,是一个不错的ios学习的例子,喜欢的朋友可以下载学习看看,。
C中实现单例模式7.4 子类化Singleton7.5 线程安全7.6 在Cocoa Touch框架中使用单例模式7.6.1 使用UIApplication类7.6.2 使用UIAccelerometer类7.6.3 使用NSFileManager类7.7 总结第三部分 接口适配第8章 适配器8.1 ...
NSFileManager *fileManager = [NSFileManager defaultManager]; //获取路径 //参数 要获取的哪种路径 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); ...