我需要在我的应用程序中使用文件。如果我将文件上传到Data/Data/APP/files,那么它将被添加-rw-rw-rw权限,然后我可以在我的应用程序中使用这些权限。如果我以编程方式将文件写入getfilesDir()完全相同的目录,我可以在同一目录中看到两个完全相同的文件,但是以编程方式保存的文件具有权限-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扩展文件。
发布于 2020-07-08 10:58:05
你说不能访问你的文件是什么意思?
看看这个文档(https://developer.android.com/training/data-storage),你不需要访问(读写)应用程序特定目录中的文件的权限。
编辑:
我假设你已经把文件存储到磁盘上了。
请注意,在App-Specific Directory中读写文件不需要权限。你可以使用这个简单的代码来阅读它。
public File readFile(Context context, String fileName) {
File file = new File(context.getFilesDir(), fileName);
// do other stuff, like checking if the file exist, etc.
return file;
}不管它是什么文件扩展名,只要文件存在,你就会得到它。
其实已经有很多关于这个话题的文章了,请大家看一看,以便更好地理解这个话题。
https://stackoverflow.com/questions/62785236
复制相似问题