核心代码如下:
支持用其他软件查看本文件,用tableView获取到文件列表点击某个文件是实现预览文件的效果,如同QQ上收到的文件一样的。
NSFileManager *fileManager = [NSFileManager defaultManager];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docDirs = [paths objectAtIndex:0];
NSError *error = nil;
//_dataFileArray是包含有该文件夹下所有文件的文件名及文件夹名的数组
_dataFileArray = [fileManager contentsOfDirectoryAtPath:docDirs error:&error];
fileList = [NSMutableArray array];
XCPFileObject *fileObj;
for (NSString *name in _dataFileArray) {
fileObj = [[XCPFileObject alloc] init];
fileObj.fileName = name;
NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:[docDirs stringByAppendingPathComponent:name] error:nil];
fileObj.filemTime = [fileAttributes objectForKey:@"NSFileCreationDate"];
fileObj.fileSize = [[fileAttributes objectForKey:@"NSFileSize"] integerValue];
fileObj.fileOwner = [fileAttributes objectForKey:@"NSFileGroupOwnerAccountName"];
[fileList addObject:fileObj];
}
//列出给定一个文件夹里的所有子文件夹名
NSMutableArray *dirArray = [[NSMutableArray alloc] init];
BOOL isDir = NO;
for (NSString *file in _dataFileArray) {
NSString *path = [docDirs stringByAppendingPathComponent:file];
[fileManager fileExistsAtPath:path isDirectory:(&isDir)];
if (isDir) {
[dirArray addObject:file];
}
isDir = NO;
}