zoukankan      html  css  js  c++  java
  • 文件夹的创建、重命名、删除

    --------------siwuxie095

       

       

       

       

    工程结构目录如下:

       

       

       

       

    1、文件夹的创建:

       

    1)创建单级文件夹:

       

    代码:

       

    package com.siwuxie095.file;

       

    import java.io.File;

       

    public class HelloFolder {

       

    /**

    * 虽然 File类既可以表示文件,也可以表示文件夹

    * 但对文件和文件夹的操作还是有所区别的,尤其

    * 是文件夹的创建和删除 与文件的区别较大

    * @param args

    */

    public static void main(String[] args) {

    //创建一个文件对象 folder,且是相对路径

    File folder=new File("my new folder");

    //如果使用默认的 createNewFile(),会创建成文件,且命名为my new folder,只不过没有扩展名而已

    //folder.createNewFile();

     

    //创建文件夹,使用 mkdir()方法 make-directory,返回值是 布尔值

    if (folder.mkdir()) {

    System.out.println("文件夹创建完成");

    } else {

    //当文件夹创建过,再次运行时就会显示创建失败,所以需要再次判断是否存在

    if (folder.exists()) {

    System.out.println("文件夹已经存在不用创建");

    } else {

    /**

    * 创建失败的情形:在命名文件夹时指定多级路径

    * 如:"my new folder/one/two/three/main" 多级结构,层层嵌套,创建失败

    * 这是因为使用mkdir()来将一个文件夹创建到一个固定的路径中,

    * 不管这个路径是相对路径还是绝对路径,要求这个路径必须存在, 如果这个路径

    * 不存在,文件夹是无法被创建的,如:my new folder文件夹是存在的(假如已经运行过一次),

    * 如果单单创建one文件夹,是可以创建的,如果是创建到main文件夹,前面有三级文件夹都不存在,

    * 所以最后的main文件夹也是无法被创建的

    *

    * 但创建多级文件夹时也不必一级一级的创建,可以使用另一个方法 mkdirs() 创建多级结构

    */

    System.out.println("文件夹创建失败");

    }

     

    }

     

     

    }

       

    }

       

       

    第一次运行一览:

       

       

       

    第二次运行一览:

       

       

       

    my new folder 和 bin、src 同级,都在 HelloFolder 目录下:

       

       

       

       

       

    2)创建多级文件夹:

       

    代码:

       

    package com.siwuxie095.file;

       

    import java.io.File;

       

    public class HelloFolder {

       

    /**

    * 虽然 File类既可以表示文件,也可以表示文件夹

    * 但对文件和文件夹的操作还是有所区别的,尤其

    * 是文件夹的创建和删除 与文件的区别较大

    * @param args

    */

    public static void main(String[] args) {

    //创建一个文件对象 folder,且是相对路径

    File folder=new File("my new folder/one/two/three/main");

     

     

    //创建多级文件夹,使用 mkdirs()方法 make-directorys,返回值是 布尔值

    //不管中间缺失了多少级文件夹结构,都会自动补全

    if (folder.mkdirs()) {

    System.out.println("文件夹创建完成");

    } else {

    //当文件夹创建过,再次运行时就会显示创建失败,所以需要再次判断是否存在

    if (folder.exists()) {

    System.out.println("文件夹已经存在不用创建");

    } else {

    System.out.println("文件夹创建失败");

    }

     

    }

     

     

    }

       

    }

       

       

    运行后,my new folder 和 bin、src 同级,都在 HelloFolder 目录下:

       

       

       

       

       

       

       

       

    2、文件夹的重命名:

       

    代码:

       

    package com.siwuxie095.file;

       

    import java.io.File;

       

    public class HelloFolder {

       

    /**

    * 虽然 File类既可以表示文件,也可以表示文件夹

    * 但对文件和文件夹的操作还是有所区别的,尤其

    * 是文件夹的创建和删除 与文件的区别较大

    * @param args

    */

    public static void main(String[] args) {

     

    //文件夹

    File folder=new File("my new folder");

    //另一个文件夹

    File newFolder=new File("my new folder-new");

    //重命名 renameTo() 传入 newFolder 返回布尔类型

    if (folder.renameTo(newFolder)) {

    System.out.println("done");

    } else {

    System.out.println("fail");

    }

     

     

     

     

    }

       

    }

       

       

    运行一览:

       

       

       

    my new folder 被重命名为 my new folder-new:

       

       

       

       

       

    〔只有 my new folder 被更改,其目录下的 one、two、three、main

    每一级文件夹结构都不受影响 。对于文件夹的重命名,可以单独重命名

    其中某一级的文件夹结构〕

       

    如:将 two 文件夹重命名为 2(因为当前的 my new folder 已经重命名

    my new folder-new,所以原始名称应该改为 my new folder-new)

       

    代码:

       

    package com.siwuxie095.file;

       

    import java.io.File;

       

    public class HelloFolder {

       

    /**

    * 虽然 File类既可以表示文件,也可以表示文件夹

    * 但对文件和文件夹的操作还是有所区别的,尤其

    * 是文件夹的创建和删除 与文件的区别较大

    * @param args

    */

    public static void main(String[] args) {

     

    //文件夹

    File folder=new File("my new folder-new/one/two");

    //另一个文件夹

    File newFolder=new File("my new folder-new/one/2");

    //重命名 renameTo() 传入 newFolder 返回布尔类型

    if (folder.renameTo(newFolder)) {

    System.out.println("done");

    } else {

    System.out.println("fail");

    }

     

     

     

     

    }

       

    }

       

       

    运行一览:

       

       

       

    two 被重命名为 2:

       

       

       

       

       

    把 2 改回 two,将 two 移动到与 one 同级(two 下的 three、main 同步

    移动),也即 two 及其子目录移动到 my new folder-new 目录下:

       

    package com.siwuxie095.file;

       

    import java.io.File;

       

    public class HelloFolder {

       

    /**

    * 虽然 File类既可以表示文件,也可以表示文件夹

    * 但对文件和文件夹的操作还是有所区别的,尤其

    * 是文件夹的创建和删除 与文件的区别较大

    * @param args

    */

    public static void main(String[] args) {

     

    //文件夹

    File folder=new File("my new folder-new/one/two");

    //另一个文件夹

    File newFolder=new File("my new folder-new/two");

    //重命名 renameTo() 传入 newFolder 返回布尔类型

    if (folder.renameTo(newFolder)) {

    System.out.println("done");

    } else {

    System.out.println("fail");

    }

     

     

     

     

    }

       

    }

       

       

    运行一览:

       

       

       

    two 及其子目录成功移动到 my new folder-new 下,与 one 同级:

       

       

       

       

       

       

       

    three 及其子目录移动到 my new folder-new 目录下,与 one、two 同级:

       

    package com.siwuxie095.file;

       

    import java.io.File;

       

    public class HelloFolder {

       

    /**

    * 虽然 File类既可以表示文件,也可以表示文件夹

    * 但对文件和文件夹的操作还是有所区别的,尤其

    * 是文件夹的创建和删除 与文件的区别较大

    * @param args

    */

    public static void main(String[] args) {

     

    //文件夹

    File folder=new File("my new folder-new/two/three");

    //另一个文件夹

    File newFolder=new File("my new folder-new/three");

    //重命名 renameTo() 传入 newFolder 返回布尔类型

    if (folder.renameTo(newFolder)) {

    System.out.println("done");

    } else {

    System.out.println("fail");

    }

     

     

     

     

    }

       

    }

       

       

    运行一览:

       

       

       

    three 及其子目录成功移动到 my new folder-new 下,与 one、two 同级:

       

       

       

       

       

       

    〔这里说移动文件夹,其实并不合适,严谨的说还是 重命名,只是在 重命名

    把该文件夹放到了不同的文件夹结构中。和文件的重命名一样,要在同一分区中

    进行,如果不在同一分区,重命名就会失败。另:目标文件夹已经存在也会导致

    重命名失败,文件亦是如此。〕

       

    「即 不管是文件还是文件夹,如果目标的文件(夹)已经存在,进行 重命名 操作就会失败」

       

       

       

       

       

       

    3、文件夹的删除:

       

    代码:

       

    package com.siwuxie095.file;

       

    import java.io.File;

       

    public class HelloFolder {

       

    /**

    * 虽然 File类既可以表示文件,也可以表示文件夹

    * 但对文件和文件夹的操作还是有所区别的,尤其

    * 是文件夹的创建和删除 与文件的区别较大

    * @param args

    */

    public static void main(String[] args) {

     

    File folder=new File("my new folder-new/three");

    //删除文件夹 delete() 返回布尔类型

    if (folder.delete()) {

    System.out.println("done");

    } else {

    System.out.println("fail");

    }

     

    }

       

    }

       

       

    运行一览:

    删除失败,这是因为当前文件夹必须是空文件夹才能被 delete() 删除,

    如果文件夹中包含任何的其他文件(夹),都不能被删除

       

       

       

       

    如果删除的是 one 文件夹,即 File folder=new File("my new folder-new/one");

    就会成功(因为 one 是一个空文件夹)

       

    这就是 文件的删除 文件夹的删除 的最大的区别。因为文件只包含自身,

    文件夹却可能包含下面的好多对象(文件、文件夹),如果让程序轻易的

    删除一个文件夹,对其所包含的下面的结构是非常不负责任的

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    PHP 反射 ReflectionClass
    go-字符串生成数据库字段
    grpc类型
    ubuntu安装zookeeper集群
    ubuntu安装JDK
    zookeeper分布式读写锁
    golang利用gob序列化struct对象保存到本地(转载)
    golang手动管理内存(转载)
    类json格式字符串打印
    研二寒假---关于Qt&CV曲线算法问题
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6609952.html
Copyright © 2011-2022 走看看