//获取当前应用程序的主目录
NSString directoryPath =NSHomeDirectory();
//获取当前目录下的所有文件
NSArray directoryContents = [[NSFileManager defaultManager] directoryContentsAtPath: directoryPath];
//获取一个文件或文件夹
NSString *selectedFile = (NSString*)[directoryContents objectAtIndex: indexPath.row];
//拼成一个完整路径
[directoryPath stringByAppendingPathCom
BOOL isDir;
//判断是否是为目录
if ([[NSFileManager defaultManager] fileExistsAtPath:selectedPath isDirectory:&isDir] && isDir)
{//目录
}
else
{//文件
}
//日期格式化
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumSty
[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) loadFileContentsIntoText
{
//通过流打开一个文件
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是可以异步工作的。可以注册一个在流中有字节可读的时候回调的函数,如果没有可读的,就不要阻塞住。
暂略