在android上移动文件

use*_*292 5 android

我需要将文件从用户 sdcard 上的一个位置移动到 sdcard 上的另一个位置

目前我正在使用 File.renameTo

例如从 sdcard/test/one.txt 到 sdcard/test2/two.txt

一些用户报告文件移动功能不起作用。

我遇到了下面的链接:

如何将文件从“资产”文件夹复制到 SD 卡?

那么将文件从 SD 卡上的一个目录移动到另一个目录的最佳方法是什么?

小智 2

尝试使用这些代码进行复制并检查文件并删除原始文件。

private void backup(File sourceFile)
{
    FileInputStream fis = null;
    FileOutputStream fos = null;
    FileChannel in = null;
    FileChannel out = null;

    try
    {
        File backupFile = new File(backupDirectory.getAbsolutePath() + seprator + sourceFile.getName());
        backupFile.createNewFile();

        fis = new FileInputStream(sourceFile);
        fos = new FileOutputStream(backupFile);
        in = fis.getChannel();
        out = fos.getChannel();

        long size = in.size();
        in.transferTo(0, size, out);
    }
    catch (Throwable e)
    {
        e.printStackTrace();
    }
    finally
    {
        try
        {
            if (fis != null)
                fis.close();
        }
        catch (Throwable ignore)
        {}

        try
        {
            if (fos != null)
                fos.close();
        }
        catch (Throwable ignore)
        {}

        try
        {
            if (in != null && in.isOpen())
                in.close();
        }
        catch (Throwable ignore)
        {}

        try
        {
            if (out != null && out.isOpen())
                out.close();
        }
        catch (Throwable ignore)
        {}
    }
}
Run Code Online (Sandbox Code Playgroud)