【发布时间】:2020-07-07 23:15:58
【问题描述】:
我需要在我的应用程序中使用一个文件。如果我将文件上传到 Data/Data/APP/files 然后它会添加 -rw-rw-rw 权限,然后我可以在我的应用程序中使用它。如果我以编程方式将文件写入 getFilesDir() 完全相同的目录,我可以在同一目录中看到 2 个完全相同的文件,但是以编程方式保存的文件具有权限 -rw------- 然后我无法访问该文件我的应用程序使用 getfilesDir()。 这就是文件的保存方式:
public void writeFileOnInternalStorage(Context mcoContext,String sFileName, String sBody){
File file = new File(getApplicationContext().getFilesDir(), "");
if(!file.exists()){
file.mkdir();
}
try{
File gpxfile = new File(file, sFileName);
FileWriter writer = new FileWriter(gpxfile);
writer.append(sBody);
writer.flush();
writer.close();
}catch (Exception e){
e.printStackTrace();
}
}
我怎样才能获得使用该文件的正确权限。这可能不是权限问题,可能是我保存文件的方式?它是一个 .graphml 扩展文件。
【问题讨论】:
-
getFilesDir() 不需要任何权限。
-
如果我将文件上传到 Data/Data/APP/files 。这样的路径一开始并不存在。上传是什么意思?你到底在做什么?
-
File file = new File(Context.getFilesDir(), "");没有定义一个带名称的文件对象。它定义了一个目录。此外,该代码不会保存任何内容。它只创建一个 File 对象。 -
就文件路径道歉而言,我只是人手不足,我想你会明白 getFilesDir() 将文件存储到哪里。我已经添加了完整的方法来保存文件。
-
File file = new File(getApplicationContext().getFilesDir(), "");这是一个令人困惑的说法。更好:File file = getApplicationContext().getFilesDir();.
标签: java android android-internal-storage