目录分隔符
    1.在windows下, 可以使用  "\"  与  "/" 
    2.在Unix/Linux下只能使用  "/" 
 
路径:  
    绝对路径: 文件的完整路径,以盘符开头。
    相对路径: 资源文件相对于当前目录路径。
                 .   代表是当前路径
                 ..  代表是上一级路径
      注意: 不是在同一个盘符下,没法写相对路径

File类
通过File类常用方法可以获取和修改文件的属性数据。

File类的构造函数:

File(String pathname)

文件或文件夹路径,创建一个File对象

File(File parent, String child)

父路径与子路径构建一个File对象 。

File(String parent, String child)

父路径与子路径构建一个File对象

File file = new File("g:/a.txt");
		File parentFile = new File("g://");
		File file1 = new File("g:\\", "a.txt");
		File file2 = new File(parentFile, "a.txt");

方法:
    创建:

createNewFile()

在指定位置创建一个空文件

mkdir()

在指定位置创建(最后一级)目录,上级目录不存在就抛异常

mkdirs()

在指定位置创建目录,创建路径中所有不存在的目录

    eg:

File file = new File("F:\\a.txt");

获取文件对象

File dir = new File("F:\\aa\\bb");

获取文件夹对象

file.createNewFile()

创建一个空文件

dir.mkdir()

创建一个单级文件夹

dir.mkdirs()

创建一个多级文件夹

File file3 = new File("g:/b.docx");
		System.out.println("创建文件" + file3.createNewFile());
	// --------------------------------------------------------
		File file4 = new File("g:/b/c");
		System.out.println("创建一个单级文件夹:" + file4.mkdir());
		System.out.println("创建一个多级文件夹:" + file4.mkdirs());

操作:
        renameTo方法介绍:
            操作文件:
                    源文件与目标文件相同路径:重命名
                    源文件与目标文件不同路径:剪切
            操作文件夹:
                    源文件夹与目标文件夹相同路径:重命名
                    源文件夹与目标文件夹不同路径:不起作用

        delete()                        删除文件或一个空文件夹(空的)
        deleteOnExit()            虚拟机结束时删除文件或目录
    判断:

File file = new File("a.txt");

file.exists()

文件或文件夹是否存在。

file.isFile()

是否是一个文件,如果不存在,则始终为false。

file.isDirectory()

是否是一个目录,如果不存在,则始终为false。

file.isHidden()

是否是一个隐藏的文件或是否是隐藏的目录。

file.isAbsolute()

测试此抽象路径名是否为绝对路径名。

System.out.println(file.exists());
		System.out.println(file.isDirectory());
		System.out.println(file.isFile());
		System.out.println(file.isHidden());
		System.out.println(file.isAbsolute());

获取:

getName()

获取文件或文件夹的名称

getPath()

返回路径

getAbsolutePath()

获取文件的绝对路径,与文件是否存在没关系

length()

获取文件的(字节数),如果文件不存在或文件夹则返回0L。

 

getParent()

 

返回此抽象路径名父目录的路径名字符串;

如果此路径名没有指定父目录,则返回null。

lastModified()

获取最后一次被修改的时间。

System.out.println(file.getName());
		System.out.println(file.getPath());
		System.out.println(file.getParent());
		System.out.println(file.lastModified());
		// 日期格式化类格式化时间输出
		long time = file.lastModified();
		SimpleDateFormat sm = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
		System.out.println(sm.format(time));

文件夹操作相关:
    staic File[] listRoots()    列出所有的根目录(Window中就是所有系统的盘符)

File[] files = File.listRoots();   //列出所有的盘符
		for(File root : files){
			System.out.println(root);
		}

    list()                                返回目录下的文件或者目录名,包含隐藏文件。

public static void listAllFilesAndDirs1(String path) {
		// list方法列出文件和文件夹
		File dir = new File(path);
		String[] names = dir.list();
		for (int i = 0; i <= names.length; i++) {
			System.out.println(names[i]);
		}
	}

    listFiles()                        返回目录下的文件或者目录对象,包含隐藏文件。

public static void listAllFilesAndDirs2(String path) {
		// listFire方法列出文件和文件夹
		File dir = new File(path);
		File[] names = dir.listFiles();
		for (int i = 0; i < names.length; i++) {
			File file = names[i];
			if (file.isFile()) {
				System.out.print("子文件:");
				System.out.println("\t" + file.getName());
			} else if (file.isDirectory()) {
				System.out.print("子文件夹:");
				System.out.println("\t" + file.getName());
			}
		}
	}

拓展练习:根据扩展名列出文件

// 从指定目录中找到指定扩展名的文件,并列出来
	public static void listAllFileswithExtention(String path, String extention) {
		File file = new File(path);
		File[] names = file.listFiles();
		for (int i = 0; i < names.length; i++) {
			if (names[i].getName().endsWith(extention)) {
				System.out.println(names[i].getName());
			}
		}
	}

	public static void main(String[] args) {
		String path = "g:/";// 指定目录
		String extention = "txt";// 扩展名
		listAllFileswithExtention(path, extention);
	}