A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闲人 中级黑马   /  2014-4-22 12:42  /  880 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.BufferedWriter;
  2. import java.io.File;
  3. import java.io.FileWriter;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import java.util.List;

  7. public class FileList {
  8.         public static void main(String[] args) throws IOException{
  9.                 File dir = new File("E:\\黑马视频");
  10.                 List<File> list = new ArrayList<File>();
  11.                 fileToList(dir,list,0);
  12.                 File file = new File(dir,"视频列表.txt");
  13.                 writeToFile(list,file.toString());
  14.         }
  15.         public static void fileToList(File dir, List<File> list,int level)
  16.         {
  17.                 level++;
  18.                 File[] files = dir.listFiles();
  19.                 for(File file:files)
  20.                 {
  21.                         if(file.isDirectory())
  22.                                 fileToList(file,list,level);
  23.                         else
  24.                         {
  25.                                 if(file.getName().endsWith(".avi"))
  26.                                         list.add(file);
  27. //                                        list.add(getLevel(level)+file);//加不进去啊
  28.                         }
  29.                 }
  30.         }
  31.         public static void writeToFile(List<File> list,String javaListFile)throws IOException
  32.         {
  33.                
  34.                 BufferedWriter bufw = null;
  35.                 try {
  36.                         bufw = new BufferedWriter(new FileWriter(javaListFile));
  37.                        
  38.                         for(File f :list)
  39.                         {
  40.                                 String path = f.getAbsolutePath();
  41.                                 bufw.write(path);
  42.                                 bufw.newLine();
  43.                                 bufw.flush();
  44.                         }
  45.                 } catch (Exception e) {
  46.                         throw e;
  47.                 }
  48.                 finally
  49.                 {
  50.                         try {
  51.                                 if(bufw!=null)
  52.                                         bufw.close();
  53.                         } catch (Exception e) {
  54.                                 throw e;
  55.                         }
  56.                 }
  57.         }
  58.         public static String getLevel(int level)
  59.         {
  60.                 StringBuilder sb = new StringBuilder();
  61.                 sb.append("|--");
  62.                 for(int x=0;x<level;x++)
  63.                 {
  64.                         sb.insert(0,"  ");
  65.                 }
  66.                 return sb.toString();
  67.         }
  68. }
复制代码


我想进行目录分层,可是加不进去那个分隔符。不知道哪里问题,求解啊

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

3 个回复

倒序浏览
if(file.getName().endsWith(".avi"))
                                        list.add(file);
//                                        list.add(getLevel(level)+file);//加不进去啊
if后面不加大括号的时候,系统默认的是只处理第一条不管其他的。
在if后面加个大括号
if(file.getName().endsWith(".avi"))

                                        list.add(file);
                                        list.add(getLevel(level)+file);

这样试下看看

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
kuroro自走核炮 发表于 2014-4-22 12:54
if(file.getName().endsWith(".avi"))
                                        list.add(file);
//       ...

还是不行
错误提示
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
        The method add(File) in the type List<File> is not applicable for the arguments (String)
回复 使用道具 举报
闲人 发表于 2014-4-22 13:01
还是不行
错误提示
Exception in thread "main" java.lang.Error: Unresolved compilation problem:

额,刚才没注意看你代码上面。你的list集合泛型限定是<File>类,肯定不能直接往里面存字符串类型的。不过你如果是要搞列表分层,为啥list里面存的不是字符串类型的路径而是直接存文件类型啊?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马