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

   

   

   

   

工程结构目录如下:

   

Redies的新建文件夹 新建文件夹介绍_java

   

   

   

1、文件夹的创建:

   

(1)创建单级文件夹:

   

代码:

   

package com.siwuxie095.file;
  
import java.io.File;
  
public class HelloFolder {
  
/**
     * 虽然 File类既可以表示文件,也可以表示文件夹								
     * 但对文件和文件夹的操作还是有所区别的,尤其
     * 是文件夹的创建和删除								与文件的区别较大
     * @param args
     */
public staticvoid main(String[] args) {
//创建一个文件对象 folder,且是相对路径								
new"my new folder");
//如果使用默认的 createNewFile(),会创建成文件,且命名为my new folder,只不过没有扩展名而已								
//folder.createNewFile(); 
         
//创建文件夹,使用 mkdir()方法									即 make-directory,返回值是									布尔值								
if (folder.mkdir()) {
"文件夹创建完成");									
else {
//当文件夹创建过,再次运行时就会显示创建失败,所以需要再次判断是否存在								
if (folder.exists()) {
"文件夹已经存在不用创建");									
else {
/**
                 * 创建失败的情形:在命名文件夹时指定多级路径								
                 * 如:"my new folder/one/two/three/main" 多级结构,层层嵌套,创建失败
                 * 这是因为使用mkdir()来将一个文件夹创建到一个固定的路径中,
                 * 不管这个路径是相对路径还是绝对路径,要求这个路径必须存在,								如果这个路径
                 * 不存在,文件夹是无法被创建的,如:my new folder文件夹是存在的(假如已经运行过一次),
                 * 如果单单创建one文件夹,是可以创建的,如果是创建到main文件夹,前面有三级文件夹都不存在,
                 * 所以最后的main文件夹也是无法被创建的
                 * 
                 *  但创建多级文件夹时也不必一级一级的创建,可以使用另一个方法 mkdirs() 创建多级结构								
                 */
"文件夹创建失败");									
            }
             
        }
         
         
    }
  
}

   

   

第一次运行一览:

   

Redies的新建文件夹 新建文件夹介绍_System_02

   

   

第二次运行一览:

   

Redies的新建文件夹 新建文件夹介绍_java_03

   

   

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

   

Redies的新建文件夹 新建文件夹介绍_Redies的新建文件夹_04

   

Redies的新建文件夹 新建文件夹介绍_重命名_05

   

   

   

(2)创建多级文件夹:

   

代码:

   

package com.siwuxie095.file;
  
import java.io.File;
  
public class HelloFolder {
  
/**
     * 虽然 File类既可以表示文件,也可以表示文件夹								
     * 但对文件和文件夹的操作还是有所区别的,尤其
     * 是文件夹的创建和删除								与文件的区别较大
     * @param args
     */
public staticvoid main(String[] args) {
//创建一个文件对象 folder,且是相对路径								
new"my new folder/one/two/three/main");
         
         
//创建多级文件夹,使用 mkdirs()方法									即 make-directorys,返回值是									布尔值								
//不管中间缺失了多少级文件夹结构,都会自动补全
if (folder.mkdirs()) {
"文件夹创建完成");									
else {
//当文件夹创建过,再次运行时就会显示创建失败,所以需要再次判断是否存在								
if (folder.exists()) {
"文件夹已经存在不用创建");									
else {
"文件夹创建失败");									
            }
             
        }
         
         
    }
  
}

   

   

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

   

Redies的新建文件夹 新建文件夹介绍_java_06

   

Redies的新建文件夹 新建文件夹介绍_Redies的新建文件夹_07

   

   

   

   

   

   

2、文件夹的重命名:

   

代码:

   

package com.siwuxie095.file;
  
import java.io.File;
  
public class HelloFolder {
  
/**
     * 虽然 File类既可以表示文件,也可以表示文件夹								
     * 但对文件和文件夹的操作还是有所区别的,尤其
     * 是文件夹的创建和删除								与文件的区别较大
     * @param args
     */
public staticvoid main(String[] args) {
         
//文件夹								
new"my new folder");
//另一个文件夹								
new"my new folder-new");
//重命名 renameTo() 传入 newFolder 返回布尔类型								
if (folder.renameTo(newFolder)) {
"done");
else {
"fail");
        }
         
         
         
         
    }
  
}

   

   

运行一览:

   

Redies的新建文件夹 新建文件夹介绍_重命名_08

   

   

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

   

Redies的新建文件夹 新建文件夹介绍_Redies的新建文件夹_09

   

Redies的新建文件夹 新建文件夹介绍_java_10

   

   

   

〔只有 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 staticvoid main(String[] args) {
         
//文件夹								
new"my new folder-new/one/two");
//另一个文件夹								
new"my new folder-new/one/2");
//重命名 renameTo() 传入 newFolder 返回布尔类型								
if (folder.renameTo(newFolder)) {
"done");
else {
"fail");
        }
         
         
         
         
    }
  
}

   

   

运行一览:

   

Redies的新建文件夹 新建文件夹介绍_System_11

   

   

two 被重命名为 2:

   

Redies的新建文件夹 新建文件夹介绍_Redies的新建文件夹_12

   

Redies的新建文件夹 新建文件夹介绍_Redies的新建文件夹_13

   

   

   

把 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 staticvoid main(String[] args) {
         
//文件夹								
new"my new folder-new/one/two");
//另一个文件夹								
new"my new folder-new/two");
//重命名 renameTo() 传入 newFolder 返回布尔类型								
if (folder.renameTo(newFolder)) {
"done");
else {
"fail");
        }
         
         
         
         
    }
  
}

   

   

运行一览:

   

Redies的新建文件夹 新建文件夹介绍_Redies的新建文件夹_14

   

   

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

   

Redies的新建文件夹 新建文件夹介绍_System_15

   

Redies的新建文件夹 新建文件夹介绍_System_16

   

Redies的新建文件夹 新建文件夹介绍_java_17

   

   

   

   

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

   

package com.siwuxie095.file;
  
import java.io.File;
  
public class HelloFolder {
  
/**
     * 虽然 File类既可以表示文件,也可以表示文件夹								
     * 但对文件和文件夹的操作还是有所区别的,尤其
     * 是文件夹的创建和删除								与文件的区别较大
     * @param args
     */
public staticvoid main(String[] args) {
         
//文件夹								
new"my new folder-new/two/three");
//另一个文件夹								
new"my new folder-new/three");
//重命名 renameTo() 传入 newFolder 返回布尔类型								
if (folder.renameTo(newFolder)) {
"done");
else {
"fail");
        }
         
         
         
         
    }
  
}

   

   

运行一览:

   

Redies的新建文件夹 新建文件夹介绍_重命名_18

   

   

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

   

Redies的新建文件夹 新建文件夹介绍_重命名_19

   

Redies的新建文件夹 新建文件夹介绍_重命名_20

   

Redies的新建文件夹 新建文件夹介绍_java_21

   

   

   

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

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

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

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

   

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

   

   

   

   

   

   

3、文件夹的删除:

   

代码:

   

package com.siwuxie095.file;
  
import java.io.File;
  
public class HelloFolder {
  
/**
     * 虽然 File类既可以表示文件,也可以表示文件夹								
     * 但对文件和文件夹的操作还是有所区别的,尤其
     * 是文件夹的创建和删除								与文件的区别较大
     * @param args
     */
public staticvoid main(String[] args) {
         
new"my new folder-new/three");
//删除文件夹 delete() 返回布尔类型								
if (folder.delete()) {
"done");
else {
"fail");
        }
         
    }
  
}

   

   

运行一览:

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

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

   

Redies的新建文件夹 新建文件夹介绍_重命名_22

   

   

   

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

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

   

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

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

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

   

   

   

   

【made by siwuxie095】