将文件保存在没有扩展名的SD卡中,并使用扩展名访问该文件

时间:2015-05-22 06:52:30

标签: android storage android-sdcard

我从服务器下载pdf文件并将其保存在没有扩展名的SD卡上(出于安全目的,以便普通用户无法从文件管理器打开该文件)。例如 - 我正在下载abc.pdf和将其保存在SD卡上,abc位于路径下方

String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File folder = new File(extStorageDirectory, "files");

后来我想通过添加扩展名来查看该文件。 因此,当我使用下面的代码从代码访问该文件时,它提供的错误文件不存在..

String s=Environment.getExternalStorageDirectory() + "/files/" + "abc";
File pdfFile = new File(s+".pdf"); 

那么如何在没有扩展名的情况下将文件保存在SD卡中,然后以扩展名打开该文件。

1 个答案:

答案 0 :(得分:0)

您的问题的解决方法是重命名您保存的pdf文件,而不扩展名为 .pdf 扩展名&在再次完成/访问新pdf扩展文件上的查看或读取操作后,您可以将其重命名为不带扩展名的文件

  

示例用法:

String currentFileName = Environment.getExternalStorageDirectory() + File.separator
            + "files" + File.separator + "abc";
String renamedFilename = currentFileName + ".pdf";

boolean isRenamed = renameFile(currentFileName, renamedFilename);
Log.d("isRenamed: ", "" + isRenamed);

  if(isRenamed {
    //perform your operation
  }

如果没有使用,请再次重命名该文件(此处交换renameFile()参数):

boolean renameAfterOperation = renameFile(renamedFilename, currentFileName);
Log.d("renameAfterOperation : ", "" + renameAfterOperation );

这里是 renameFile(currentFilePath,renamedFilePath)

public boolean renameFile(String currentFilePath, String renamedFilePath){
    File currentFile = new File(currentFilePath);
    File newFile = new File(renamedFilePath);
    boolean isrenamed = currentFile.renameTo(newFile);
    return isrenamed;
}

这样,只要您想对保存的文件执行操作,首先将其重命名为.pdf&无论什么时候不使用,再次将其重命名为无扩展名。如果这对您有用,请告诉我..