android - 为什么使用 Android Studio 在 Java 中的文件列表数组为空?
问题描述
我正在使用带有 Java 的 Android Studio。
我编写了一种方法(即 deleteWithExtension)来从设备内部存储器中删除文件。此方法是添加一些测试文件并尝试获取这些文件的列表。
但问题是,代码永远不会进入 for 循环,因为数组 theFiles[] 返回 null。如您所见,代码以示例文件添加过程开始,因此它不应为空。我还可以在 Android Studio 的设备文件资源管理器中看到这些示例文件。
public static void CreateFile(Context mContext, String fileName, String textToBeWritten) {
try {
File dosya = new File(mContext.getFilesDir() + fileName);
dosya.createNewFile();
FileWriter fw = new FileWriter(dosya);
BufferedWriter yazici = new BufferedWriter(fw);
yazici.write(textToBeWritten);
yazici.flush();
yazici.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void deleteWithExtension(Context mContext, String extension) {
//First let's add a few sample files with same extension.
CreateFile(mContext,"SampleFile1.smp","anything1");
CreateFile(mContext,"SampleFile2.smp","anything2");
CreateFile(mContext,"SampleFile3.smp","anything3");
CreateFile(mContext,"SampleFile4.smp","anything4");
CreateFile(mContext,"SampleFile5.smp","anything5");
//Now, 5 sample files have been added. Let get them and put in an array.
File dir = mContext.getFilesDir();
final String[] theFiles = dir.list();
for (final String file : theFiles) {
//do something here....
int aa=9;
//The code never goes into here, because array theFiles is always null but 5 sample files was added at first.
}
}
解决方案
如下替换 CreateFile() 方法。我希望我能帮助你。
public static void CreateFile(Context mContext, String fileName, String textToBeWritten) {
try {
File dosya = new File(mContext.getFilesDir() + File.separator + fileName);
dosya.createNewFile();
FileWriter fw = new FileWriter(dosya);
BufferedWriter yazici = new BufferedWriter(fw);
yazici.write(textToBeWritten);
yazici.flush();
yazici.close();
} catch (Exception e) {
e.printStackTrace();
}
}
推荐阅读
- java - Spring Security JDBC认证登录用户错误
- python - 查找列表中多个集合之间的交集
- github - Github Actions CI:未在推送功能分支时运行
- r - Pivot_wider 介绍了 NA
- java - 自定义对象的自定义排序
- php - 如何遍历所有资产并检查密钥,如果密钥匹配,则继续并显示所有资产?PHP/Laravel
- php - php mysql foreach 重复两次
- node.js - 如何使用nodejs更新mongodb删除重复项?
- google-data-studio - 此时分区数大于 BI 引擎支持的 Google Data Studio BI 引擎问题
- google-sheets - 具有 LEN 和更多条件的 COUNTIFS