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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹德君 中级黑马   /  2013-5-8 14:08  /  2170 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

File目录直接显示和用方法getName()来显示有什么区别???
  1. import  java.io.*;
  2. class  ListDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 File dir = new File("d:\\share");
  7.                 //传递参数从0级目录开始
  8.                 listDir(dir,0);
  9.         }
  10.         //列出所有目录带层级的
  11.         public static String getLevel(int level)
  12.         {
  13.                 StringBuilder sb = new StringBuilder();
  14.                 for (int x=0;x<level ;x++ )
  15.                 {
  16.                         sb.append("|--");
  17.                 }
  18.                 return sb.toString();
  19.         }
  20.         //列出所有目录,将目录和每次递增的数level传递给函数。使期有层级的区别
  21.         public static void listDir(File dir,int level)
  22.         {
  23.                 //????这段代码如果直接用dir一样可以显示目录,为什么要用dir.getName()来获取名称显示呢??有什么区别吗?
  24.                 System.out.println(getLevel(level)+dir.getName());
  25.                  //每递归一次就会累加一个"|--"
  26.                 level++;
  27.                
  28.                 File[] files=dir.listFiles();       

  29.                 for (int x=0;x<files.length;x++)
  30.                 {
  31.                         if (files[x].isDirectory())
  32.                         {
  33.                                 listDir(files[x],level);
  34.                         }
  35.                         else
  36.                                 System.out.println(getLevel(level)+files[x]);
  37.                 }
  38.         }
  39. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
没听懂LZ的意思,getName()是获取得到的File文件对象的名称,而File类的listFists()方法返回的数组里存储的就是那些File文件对象(这些对象是用来操作,要打印只能用getName()或getPath()来获取File名或路径)。
不知道LZ想问的是不是getName()或getPath()的区别? 在这道题里面,毕老师是为了让打印出来的文件按照自己规定的格式(打印的文件名因为所在目录的层次不同所以前面的空格什么的就数量不同)。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
getName()是显示文件或目录的名称,直接用dir(就是toString()、getPath())显示的是路径名。
System.out.println(getLevel(level)+files[x]);改成System.out.println(getLevel(level)+files[x].getName());试下就可以看出区别了。用getName()更好,输出结果看起来更舒服。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果问题解决了,请将分类改为“已解决”,谢谢
回复 使用道具 举报
getName只显示文件名,显示内容不包含前面的路径
File类的listFists()方法返回的数组里存储的就是那些File文件对象
我想LZ想说的应该是getName和getPath的区别吧。
一个是文件名,一个是地址路径

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马