#在蓝懿学习iOS的日子#第五个练习日

今天主要复习了昨天学习的文件管理器的知识,由于之前练的比较少,思维逻辑有些跟不上

1、我们要搭建好界面,创建好界面

//创建一个以文件名开头的可变数组

@property (nonatomic,strong)NSMutableArray *filePaths;

@end

 

@implementation TableViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    //初始化数组

    self.filePaths = [NSMutableArray array];

    //判断跳转页面如果是第一次,就是显示固定路径下面的内容

    if (!self.directoryPath) {

        self.directoryPath = @"/Volumes/文件存放/蓝懿二期";

    }

   //跳转页面后通过复用显示文件名

    self.title=[self.directoryPath lastPathComponent];

    //显示的文件夹的路径

    NSString*path = self.directoryPath;

    //获取文件名,显示

    NSFileManager* fm = [NSFileManager defaultManager];

    NSArray *fileNames= [fm contentsOfDirectoryAtPath:path error:nil];

    //把隐藏文件的过滤

    for (NSString*fileName in fileNames) {

        //判断文件名以什么开头(hasPrefix)的文件

        if (![fileName hasPrefix:@"."]) {

            //字符串的拼接

            NSString *filePath = [path stringByAppendingPathComponent:fileName];

            //filePath添加到数组里边

            [self.filePaths addObject:filePath];

            

        }

    }

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

 

//有多少行

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return self.filePaths.count;

}

 

//cell里显示的内容

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

//取到每一行

    NSString *filePath = self.filePaths[indexPath.row];

   //完整路径的展示 lastPathComponent

    cell.textLabel.text = [filePath lastPathComponent];

    //判断是否是文件夹显示右箭头

    BOOL isDir = NO;

    NSFileManager *fm = [NSFileManager defaultManager];

    if ([fm fileExistsAtPath:filePath isDirectory:&isDir]&&isDir) {//是文件夹

        

        [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]

        ;

        //添加图片显示文件夹

        cell.imageView.image = [UIImage imageNamed:@"direcotry.png"];

    }else{//如果不是文件夹 什么都不显示

         [cell setAccessoryType:UITableViewCellAccessoryNone];

          //判断是否是什么类型的文件显示的图片

        //判断文件名以什么结尾(hasSuffix)的文件

        if ([filePath hasSuffix:@".txt"]||[filePath hasSuffix:@".h"]||[filePath hasSuffix:@".m"]||[filePath hasSuffix:@".rtf"]) {

            

            

            cell.imageView.image =[UIImage imageNamed:@"txt.png"];

            

            

        }else if([filePath hasSuffix:@".jpg"]||[filePath hasSuffix:@".png"]||[filePath hasSuffix:@".JPG"]||[filePath hasSuffix:@".PNG"]){

            cell.imageView.image =[UIImage imageWithContentsOfFile:filePath];

        }else{

             cell.imageView.image =[UIImage imageNamed:@"other.png"];

        }

    }

    

    

    return cell;

}

//当点击某一行cell进去

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    //点击的路径是什么

    NSString *filePath = self.filePaths [indexPath.row];

      //判断是否是文件夹//跳转页面

    BOOL isDir = NO;

    NSFileManager *fm = [NSFileManager defaultManager];

    if ([fm fileExistsAtPath:filePath isDirectory:&isDir]&&isDir) {//是文件夹

        

        //复用当前页面 storyboard通过创建 TableViewController来区分

        TableViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"TableViewController"];

        //一个页面正向传值

        vc.directoryPath = filePath;

        

        [self.navigationController pushViewController:vc animated:YES];

    }else{//如果不是文件夹 什么都不显示

        

        //判断文件名以什么结尾(hasSuffix)的文件

        if ([filePath hasSuffix:@".txt"]||[filePath hasSuffix:@".h"]||[filePath hasSuffix:@".m"]||[filePath hasSuffix:@".rtf"]) {

            

            //创建空页面显示内容,进行展示

            UIViewController*vc = [[UIViewController alloc]init];

            UITextView *tv = [[UITextView alloc]initWithFrame:vc.view.bounds];

            [vc.view addSubview:tv];

            tv.text = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

            [self.navigationController pushViewController:vc animated:YES];

            

            

        }else if([filePath hasSuffix:@".jpg"]||[filePath hasSuffix:@".png"]||[filePath hasSuffix:@".JPG"]||[filePath hasSuffix:@".PNG"]){

            //创建空页面显示内容,进行展示

            UIViewController*vc = [[UIViewController alloc]init];

            //添加背景颜色

            vc.view.backgroundColor =[UIColor blackColor];

           UIImageView *iv = [[UIImageView alloc]initWithFrame:vc.view.bounds];

            [vc.view addSubview:iv];

            iv.image = [UIImage imageWithContentsOfFile:filePath];

            [iv setContentMode:UIViewContentModeScaleAspectFill];

            [self.navigationController pushViewController:vc animated:YES];

        }else{//其他文件

           

            //添加  展示

            

            UIAlertController *a = [UIAlertController alertControllerWithTitle:@"提示" message:@"该版本暂不支持此格式,请期待下一版本!" preferredStyle:UIAlertControllerStyleAlert];

            [a addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]];

            

            [self presentViewController:a animated:YES completion:nil];

        }

        

    }

    

   

    

}

posted @ 2015-11-10 19:39  一笑抿江湖  阅读(144)  评论(0编辑  收藏  举报