有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java将所有文件从一个目标移动到另一个目标并重命名

我有一个文件夹中的文件,我想将它们移动到另一个文件夹中,但也要重命名它们(应添加一些静态前缀值)

我成功列出了源目录中的所有文件,但在获取files[i]时找不到move方法,也找不到如何同时重命名文件并将其移动到另一个文件夹

有人能告诉我,为了移动和重命名,我应该在getFiles方法中添加什么吗

这是我的课

import java.io.File;

public class CopyTest {

    static File mainFolder = new File("F:\\TestCopy");
    static File destinationFolder = new File("F:\\TestCopy2");
    public String prefix="PREFIX";

    public static void main(String[] args)
    {
        CopyTest lf = new CopyTest();
        lf.getFiles(lf.mainFolder);

        long fileSize = mainFolder.length();

            System.out.println("File size in KB is : " + (double)fileSize/1024);

    }
    public void getFiles(File f){
        File files[];
        if(f.isFile())
            System.out.println(f.getAbsolutePath());
        else{
            files = f.listFiles();
            for (int i = 0; i < files.length; i++) {


                getFiles(files[i]);

            }
        }
    }
}

共 (5) 个答案

  1. # 2 楼答案

    将文件从一个文件夹复制到另一个文件夹,然后删除源文件

    /**
     * Copy File From One Folder To Another Folder
     * Then Delete File
     * @param sourceFile
     * @param destFile
     * @throws IOException 
     */
    public static void copyFile(File sourceFile, File destFile) throws IOException {
        InputStream in = null;
        OutputStream out = null;
        try {
            in = new FileInputStream(sourceFile);
            out = new FileOutputStream(destFile);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = in.read(buffer)) > 0) {
                out.write(buffer, 0, length);
            }
        } catch(Exception e){
            e.printStackTrace();
        }
        finally
        {
            in.close();
            out.close();
            sourceFile.delete();
        }
    }
    
  2. # 4 楼答案

    你可以这样写

      import java.io.File;
    
    public class CopyTest
    {
    
    static File mainFolder = new File("F:\\TestCopy");
    static File destinationFolder = new File("F:\\TestCopy2");
    public String prefix = "PREFIX";
    
    public static void main(String str[])
    {
        CopyTest lf = new CopyTest();
        lf.getFiles(lf.mainFolder);
    
        long fileSize = mainFolder.length();
    
        System.out.println("File size in KB is : " + (double) fileSize / 1024);
    
    }
    
    public void getFiles(File f)
    {
        File files[];
        if (f.isFile())
        {
            f.renameTo(new File(destinationFolder + "\\" + prefix + f.getName()));
        }
        else
        {
            files = f.listFiles();
            for (int i = 0; i < files.length; i++)
            {
    
                getFiles(files[i]);
    
            }
        }
    }
    

    }

  3. # 5 楼答案

    您可以使用file.renameto()进行移动和重命名

    样本-

    import java.io.File;
    
    public class MoveFileExample
    {
        public static void main(String[] args)
        {
            try{
    
               File afile =new File("C:\\folderA\\Afile.txt");
    
               if(afile.renameTo(new File("C:\\folderB\\" + afile.getName()))){
                System.out.println("File is moved successful!");
               }else{
                System.out.println("File is failed to move!");
               }
    
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }