我是android开发的新手。 我相信很多人都有同样的问题。我没有SD卡的 Galaxy S7手机。所以没有外部存储。但我想用我的应用程序创建文件,必须从Windows资源管理器访问才能导出它。
注意:USB模式下的debbug - 无虚拟设备
当然,在我的清单文件中,我设置了这两个权限:
android.permission.WRITE_INTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
为了确保我创建了一个文件,我使用了这种写法和以下读取方法:
File root = this.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);
File customFolder = new File(root.getAbsolutePath() + "/CustomFolder");
customFolder.mkdirs();
file = new File(customFolder, "myData.txt");
// Must catch FileNotFoundException and IOException
try {
FileOutputStream f = new FileOutputStream(file);
PrintWriter pw = new PrintWriter(f);
pw.println("Howdy do to you,");
pw.println("and the horse you rode in on.");
pw.flush();
pw.close();
f.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.i(TAG, "File not found");
} catch (IOException e) {
e.printStackTrace();
Log.i(TAG, "I/O exception");
}
阅读myData.txt
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while (true) {
line= br.readLine();
if (line== null) break;
tv.append("\n" + " " + line);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
所以所有方法都可以,但是当我浏览我的文件系统来获取创建的文件myData.txt时,我找不到它!
我们安装的大多数应用在根目录上都有自己的文件夹,如Snapchat,Whatsapp等等
我想做同样的事情,写文件的方式是什么:
ROOT - > MyApplicationName - > CustomFolder
感谢您的帮助:)
答案 0 :(得分:0)
我终于找到了添加MediaScannerConnection.scanFile()方法的解决方案。
public <E extends RealmModel> boolean isDataExist(Class<E> eClass, int id) {
E data = colleagueRealm.where(eClass).equalTo("id", id).findFirst();
return data != null;
}
private void initData(){
if(isDataExist(MyColleagueModel.class, id.getText().toString())){
// data exist
}else{
// insert new
}
但是这个解决方案并不适合我,因为存储文件夹是:
Android / data / donain_name / files / Documents / CustomFolder
我希望得到与whatsapp应用程序相同的结果,该应用程序可以在内部存储根目录中有一个文件夹。
我想要的结果是: 的所有MyApplication / CustomeFolder 强>