在Android 11中,对于目录的访问权限进行了更严格的限制。要在应用程序中保存.csv文件并使其可在Windows文件资源管理器中访问,请遵循以下步骤:
if(ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); }
File folder = new File(Environment.getExternalStorageDirectory() + "/MyLogs"); boolean success = true; if (!folder.exists()) { success = folder.mkdirs(); } if (success) { try { File file = new File(folder.getPath() + "/log.csv"); if (!file.exists()) { file.createNewFile(); } } catch (IOException e) { e.printStackTrace(); } }
File file = new File(Environment.getExternalStorageDirectory() + "/MyLogs/log.csv"); try { FileWriter writer = new FileWriter(file, true); CSVWriter csvWriter = new CSVWriter(writer); String[] data = {"Row1", "Row2", "Row3"}; csvWriter.writeNext(data); csvWriter.close(); } catch (IOException e) { e.printStackTrace(); }
这就是在Android 11上保存.csv文件并使其可通过Windows文件资源管理器访问的完整解决方案。请确保您的应用程序具有适当的权限,并遵循上述步骤以实现功能。