我使用a tutorial将zip下载到应用程序内部存储的子目录中。我把zip写到/data/data/my.package.name/files/mySubDirectory/the.zip
。
但是,当我检查拉链是否存在时,它不会:
String fileDirectory = this.getFilesDir().getAbsolutePath() + "/mySubDirectory/the.zip";
File file = new File(fileDirectory);
if(file.exists()) {
Log.e(this.class.getName(), "file exists");
} else {
Log.e(this.class.getName(), "file doesn't exist");
}
我确认fileDirectory
与File outFile
的{{1}}路径相同。
可能是什么问题?
答案 0 :(得分:0)
尝试使用getFilesDir()+“/”子目录+“/”“the.zip” 没有getabsolutepath()。 这就是我用过的问题。
好吧,也许您的问题是权限,您是否在数据/数据/包/文件下的DDMS中看到了该文件?检查文件的权限
这是我的代码
String path = getFilesDir() + "/"
+ subDirName + "/";
File file = new File(path);
file.mkdirs();
setReadable(file);
我使用以下内容使文件可读
@TargetApi(9)
private void setReadable(File file) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
try {
Runtime.getRuntime().exec(
"chmod 777 " + file.getCanonicalPath());
} catch (IOException e1) {
e1.printStackTrace();
}
} else {
file.setReadable(true, false);
}
}
}
答案 1 :(得分:0)
尝试获取以下文件路径:
String fileDirectory=Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "data" + File.separator + "data" + File.separator+ getActivity().getPackageName()+ File.separator +"mySubDirectory"+File.separator+"the.zip";
答案 2 :(得分:0)
使用this SO question,我使用此示例创建了一个子目录:
File mydir = context.getDir("mydir", Context.MODE_PRIVATE); //Creating an internal dir;
File fileWithinMyDir = new File(mydir, "myfile"); //Getting a file within the dir.
FileOutputStream out = new FileOutputStream(fileWithinMyDir); //Use the stream as usual to write into the file
问题是我没想到子目录会以“app_”为前缀,所以我在错误的位置寻找zip。