android - 公用文件夹中保存的文件可见,但 PC 无法访问
问题描述
[PC 上不可访问的文件夹:1:https://i.stack.imgur.com/FuKdy.png]
我想将传感器数据保存到外部存储中的公用文件夹中。因此,该文件夹仅可见,但 PC 无法访问,如附图所示。在 Android 上,我可以毫无问题地访问数据。
我真的不知道这个问题,因为我已经授予了外部存储的权限,尝试了“ExternalStorageDirectory”和“ExternalStoragePublicDirectory”,并在关闭 FileWriters 后添加了 MediaScanner。此外,我以两种不同的方式尝试了 MediaScanner:一种是扫描文件夹,另一种是扫描传感器文件。没有任何效果。
因此,我将非常非常感谢,如果你能给我一个提示,为什么我不能通过 PC 访问该文件夹。非常感谢您!
总结一下 - 我试过这个: - ExternalStorageDirectory - ExternalStoragePublicDirectory - MediaScanner 扫描文件 - MediaScanner 扫描文件夹 - 我也尝试关注这个问题:在 android 中保存公共文件但 PC 无法访问文件夹
FileWriter GPSwriter;
File f;
//Check if external storage is available
private boolean isExternalStorageWritable(){
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
Log.i("state", "Yes, it is writable");
return true;
} else {
return false;
}
//Create Folder
myfolder = "Logger";
f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), myfolder);
f.setExecutable(true);
f.setReadable(true);
f.setWritable(true);
if (!f.exists()) {
f.mkdirs()
} else {
Toast.makeText(getApplicationContext(), "Pfad " + myfolder + " existiert bereits", Toast.LENGTH_LONG).show();
}
//Filewriter
GPSwriter.write(String.format(Locale.ENGLISH, "%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%d,%d\n", curGPStime, curLat, curLong, curAlt, curSpeed, curBearing, curHorzAcc, curBearAcc, curSpeedAcc, curVertAcc, curElaTime, curGPStimenull));
//Create file
if (isExternalStorageWritable()){
GPSwriter = new FileWriter(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).toString() + "/" + myfolder,"Location.csv"));
try{
GPSwriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//Scan Media to see the files -> When I scan "f" I can see the folder at least, when I just scan the file, I cannot see anything at all //
MediaScannerConnection.scanFile(this, new String[]{f.toString()}, null, null);```
解决方案
我已经解决了这个问题!
我想问题是,该文件是在受保护的类中创建的。我将它移到程序的开头,现在它正在工作:)
最好的!
推荐阅读
- swift - 核心数据实体多个构建配置
- css - BootStrap dropdown menu hides behind the screen
- spring - JPA EntityManagerHolder cannot be cast to Hibernate SessionHolder with Spring 5.1 and Hibernate 5.3
- php - PHP - curl - 如何创建 API 源以使用 CURLOPT_USERPWD 函数
- shell - 计算参数
- racket - Requiring a module using its path from the project's root?
- ruby-on-rails - 如何验证 Rails 模型中的坐标?
- laravel - 将查询字符串添加到具有可选参数的 laravel 5 路由
- jquery - 防止整页缩放
- c# - ExpectModal 没有以空标题唤醒