Android 复制文件到指定文件夹重新命名

在Android开发中,经常会遇到需要复制文件到指定文件夹并重新命名的需求。本篇文章将为你介绍如何使用Java代码实现这一操作。

流程图

flowchart TD
    A(开始)
    B(检查源文件是否存在)
    C(检查目标文件夹是否存在)
    D(复制文件到目标文件夹)
    E(重命名文件)
    F(结束)
    
    A --> B
    B -->|存在| C
    B -->|不存在| F
    C -->|存在| D
    C -->|不存在| F
    D --> E
    E --> F

代码示例

首先,我们需要在AndroidManifest.xml文件中声明文件读写权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

接下来,我们可以创建一个名为FileUtils的工具类来实现文件操作的方法。首先,我们需要导入所需的包:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;

然后,我们可以在工具类中定义一个copyAndRenameFile方法,用于复制文件到指定文件夹并重新命名:

public class FileUtils {
    
    public static void copyAndRenameFile(String sourcePath, String targetPath, String newFileName) {
        File sourceFile = new File(sourcePath);
        File targetFolder = new File(targetPath);
        
        if (sourceFile.exists()) {
            if (targetFolder.exists() || targetFolder.mkdirs()) {
                File targetFile = new File(targetFolder, newFileName);
                try (FileChannel sourceChannel = new FileInputStream(sourceFile).getChannel();
                     FileChannel targetChannel = new FileOutputStream(targetFile).getChannel()) {
                    targetChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

在上述代码中,我们首先创建File对象表示源文件和目标文件夹。然后,我们检查源文件是否存在,并且检查目标文件夹是否存在或成功创建。如果满足这些条件,我们创建一个目标文件,使用FileChannel复制源文件内容到目标文件。

现在,我们可以在需要复制并重命名文件的地方调用copyAndRenameFile方法。例如,在Activity中的某个事件处理函数中:

String sourcePath = "/path/to/source/file";
String targetPath = "/path/to/target/folder";
String newFileName = "new_file_name.txt";

FileUtils.copyAndRenameFile(sourcePath, targetPath, newFileName);

上述代码将复制位于sourcePath的文件到targetPath文件夹,并将其重命名为newFileName

结论

通过以上代码示例,你可以学会在Android中复制文件到指定文件夹并重新命名。你可以根据自己的需求调整代码,例如添加文件存在性的检查、错误处理逻辑等。希望本篇文章能帮助到你。