【问题标题】:Android code for file rename process [closed]文件重命名过程的Android代码[关闭]
【发布时间】:2014-01-23 09:02:00
【问题描述】:

我需要为 android 应用程序重命名文件名。我在 onListItemClick() 中编写了代码,但它不起作用。我也没有任何异常。这是代码。这里有什么错误?

File oldFile = new File(path.get(position));
        String oldFileName=path.get(position);
        Toast.makeText(this, path.get(position), Toast.LENGTH_LONG).show();
        String segments[]=oldFileName.split("/");
        String fileName=segments[segments.length-1];
        String newFileName=oldFileName.replace(fileName, "log_B.txt");
        File newFile=new File(newFileName);


    if(!oldFile.isDirectory()){

        System.out.println("File Name is:"+fileName);

        try{
            if(oldFile.renameTo(newFile)){
                System.out.println("File renamed successfull !");

            }else{
                System.out.println("File renamed operation failed");
            }


        }catch(Exception ex){
            System.out.println("Exception :"+ex.getMessage());
        }

    }else{

        System.out.println("Folder Name is :"+fileName);

    }

【问题讨论】:

  • 让我们看看你得到的输出。
  • 我得到“文件重命名操作失败”并且没有得到任何异常。我也尝试通过将路径指定为“Environment.getExternalStorageDirectory()”来做到这一点。但仍然得到相同的输出。

标签: java android file rename file-rename


【解决方案1】:

确保您具有清单文件中定义的写入权限:

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

File.renameTo() 方法在以下情况下会失败:

  • 需要对包含两个 源路径和目标路径。
  • 两条路径的所有父级都需要搜索权限。
  • 两条路径都在同一个安装点上。在 Android 上,应用程序是 尝试在之间进行复制时最有可能遇到此限制 内部存储和 SD 卡。

如文档中所述:http://developer.android.com/reference/java/io/File.html#renameTo(java.io.File)

此外,我会验证 newFile 路径是否符合您的预期。

【讨论】:

  • 我可以用代码更改文件权限吗?不然怎么做?
  • 一般来说没有。除非您的应用程序具有系统级权限。您的应用程序仅具有对公共目录(例如外部 SD 存储或其内部目录)的写入权限。见:developer.android.com/training/basics/data-storage/files.html
  • 哦,谢谢 :) 愚蠢的错误,在我将“”添加到清单文件后它工作正常。
  • 没问题,我会更新问题以更好地反映您的解决方案。如果它解决了您的问题,请记住接受我的回答。祝你的项目一切顺利:)
猜你喜欢
  • 2015-05-06
  • 1970-01-01
  • 2012-12-06
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 2019-12-24
  • 2014-04-14
  • 2012-07-14
相关资源
最近更新 更多