gpt4 book ai didi

java - FileUtils.readFileToString IOException 异常

转载 作者:行者123 更新时间:2023-11-30 02:00:13 26 4
gpt4 key购买 nike

我是 Android 应用开发的新手。目前,我正在尝试获取 Android 下载文件夹路径并将其记录下来。为此,我使用了 commons io 库。我有这段代码:

    File folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
Log.e("files", folder.listFiles().length + " items");
try {
String DFOLDER = FileUtils.readFileToString(folder);
Log.i(TAG2, DFOLDER);
}catch (IOException e){
Toast.makeText(getApplicationContext(), R.string.fail,
Toast.LENGTH_SHORT).show();
}

出于某种原因,我每次都收到 IOException,但我从第二行收到文件夹中的文件数量。

我在 list 中有这个权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

最佳答案

FileUtils.readFileToString 将文件内容读入字符串。 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 返回目录,而不是文件,因此在其上使用 readFileToString 将抛出 IOException。如果要读取下载目录中所有文件的内容,请执行类似的操作。

 File folder = Environment.getExternalStoragePublicDirectory(Environmeng t.DIRECTORY_DOWNLOADS);
for(File file:folder.listFiles()){
try {
String DFOLDER = FileUtils.readFileToString(file);
Log.i("File Contents ", DFOLDER);
} catch (IOException e) {
Toast.makeText(getApplicationContext(), "Failed!", Toast.LENGTH_SHORT).show();
}
}

如果该目录中的文件太多,它可能会抛出 OutOfMemoryError。

编辑:如果您需要 foler 使用的路径

 File folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
Log.i("Folder Path",folder.getAbsolutePath());

关于java - FileUtils.readFileToString IOException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31598723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com