黑马程序员技术交流社区

标题: 我想问一下关于delete方法的删除文件目录的问题 [打印本页]

作者: 江大海    时间: 2013-4-1 17:29
标题: 我想问一下关于delete方法的删除文件目录的问题
是IO中的delete()方法,在api中讲的是删除此抽象路径名表示的文件或目录。
所谓的抽象路径就是指在File中的,未出现在硬盘上的,可以理解为流吗??
那为什么假设我指定的位置上已有文件夹和文件,都用delete方法可以删除文件而不可删除文件夹呢?
删除成功了文件那为什么返回的是false?
还有能说一下抽象路劲和绝对路径吗?
硬盘上的已有文件夹能用delete方法删除吗?
代码如下
谢谢了
  1. import java.io.*;

  2. class  FileDemo2
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 method_1();
  7.         }
  8.         public static void method_1() throws IOException
  9.         {
  10.                 File f = new File("E:\\editplus\\txt\\da20\\e\\d\\e\\c");
  11.                 File f2 = new File("a.txt");
  12.                 f.delete();
  13.                 f2.delete();
  14.                 sop("f.delete()"+f.delete());
  15.                 sop("f2.delete()"+f2.delete());

  16.         }
  17.         //delete删除的是抽象路径的,就是流中的吗?抽象路径和绝对路径?


  18.         public static void sop(Object obj)
  19.         {
  20.                 System.out.println(obj);
  21.        
  22.         }
  23. }
复制代码

作者: 李尧    时间: 2013-4-1 18:22
卤煮,你好.
据我所知,有两种可能返回false.
一,你File封装的路径根本不存在,比如你本地根本就没有E盘.
二,如果此路径名表示一个目录,则该目录必须为空才能删除。否则返回false.

另,delete删除的不是抽象路径,而是该抽象路径表示的文件或目录。具体请参考API,我就不粘贴复制了.
希望对你有帮助.

作者: 小菜凉碟    时间: 2013-4-1 18:24
我也想知道,请哪位大虾回答一下吧,谢谢
作者: 袁梦希    时间: 2013-4-1 18:25
李尧 发表于 2013-4-1 18:22
卤煮,你好.
据我所知,有两种可能返回false.
一,你File封装的路径根本不存在,比如你本地根本就没有E盘.


目录     抽象路径   相对路径   绝对路径,有哪些区别呢
作者: 李尧    时间: 2013-4-1 18:42
袁梦希 发表于 2013-4-1 18:25
目录     抽象路径   相对路径   绝对路径,有哪些区别呢

目录我觉得可以理解为文件夹
绝对路径 就是你写的"E:\\editplus\\txt\\da20\\e\\d\\e\\c"已经明确的指出了位置.
相对路径就是你写的"a.txt" 如果你的FileDemo2在D:\java 则他就表示"d:\\java\\a.txt"

抽象路径我真不知道该怎么解释了.我的理解就是在构造File对象时,把传入的字符串转化为对应操作系统的路径(比如"E:\\editplus\\txt\\da20\\e\\d\\e\\c"实际上表示的路径是"E:\editplus\txt\da20\e\d\e\c"),而这个路径表示的目录或者文件是否存在我们不确定.
我都不敢再说了,我自己都一知半解,再说就误人子弟了.卤煮还是等大神来解答吧.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2