zoukankan      html  css  js  c++  java
  • 关于Java中File的renameTo函数

    先看Java编程实战经典中的一道习题:

    编写程序,程序运行时输入目录名称,并把该目录下的所有文件名后缀修改成.txt。

    按照题意,我在d盘新建了文件夹test,并在该文件夹下新建了一个文件file.d。接着我写了如下程序

    import java.io.File;
    import java.util.Scanner;
    
    public class Ex09 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    //		Scanner scan = new Scanner(System.in);
    //		String dirname = scan.nextLine();
    //		scan.close();
    		String dirname = null;
    		dirname = "d:"+File.separator+"test";
    		File f = new File(dirname);
    		if (f.isDirectory()) {
    			File[] fileList = f.listFiles();
    			for (File file : fileList) {
    				if (file.isFile()) {
    					String suffix = 
    							file.getName().substring(
    							file.getName().lastIndexOf('.')+1);
    					if (false == "txt".equals(suffix)) {
    						String destName = file.getName().substring(
    								0,file.getName().lastIndexOf('.'));
    						File dest = new File(destName+".txt");
    						file.renameTo(dest);
    					}
    				}
    			}
    		}
    	}
    
    }
    

    经检查,程序没有什么问题,但是文件后缀并没有被修改。

    后来检查才发现 

    File dest = new File(destName+".txt");  这样写虽然不会报错,但是不能表示文件的具体存储位置,需要指明文件的绝对地址才行,

    改成如下代码后问题解决。

    import java.io.File;
    import java.util.Scanner;
    
    public class Ex09 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    //		Scanner scan = new Scanner(System.in);
    //		String dirname = scan.nextLine();
    //		scan.close();
    		String dirname = null;
    		dirname = "d:"+File.separator+"test";
    		File f = new File(dirname);
    		if (f.isDirectory()) {
    			File[] fileList = f.listFiles();
    			for (File file : fileList) {
    				if (file.isFile()) {
    					String suffix = file.getName().substring(
    							file.getName().lastIndexOf('.')+1);
    					if (false == "txt".equals(suffix)) {
    						String s = file.getParent();
    						String destName = file.getName().substring(
    								0,file.getName().lastIndexOf('.'));
    						File dest = new File(s+file.separator+destName+".txt");
    						
    						file.renameTo(dest);	
    					}
    				}
    			}
    		}
    	}
    
    }

    可以看出, renameTo这个函数是可以实现将文件重命名和文件移动的功能的。

  • 相关阅读:
    element中表单验证实例
    element中时间选择组件,设置default-value无效
    vue中,基于vue-seamless-scroll的无缝滚动实例
    element 表格多选时,修改选中行的背景色
    计算机组成原理11-DMA、数据完整性、分布式计算、大型DMP系统
    计算机组成原理10-总线、输入输出设备、I/O、机械硬盘、SSD硬盘
    计算机组成原理9-CPU组成、缓存、内存
    java基础-字符串
    SQL Server
    BG.Hive
  • 原文地址:https://www.cnblogs.com/aituming/p/4792119.html
Copyright © 2011-2022 走看看