为什么Android Studio的Java中的文件列表数组为空?
我正在使用Android Studio和Java 我已经编写了一个方法(即deleteWithExtension)来从设备内存中删除文件。此方法正在添加一些测试文件,并尝试获取这些文件的列表 但问题是,由于数组theFiles[]返回null,代码永远不会进入for循环。正如您所看到的,代码从示例文件添加过程开始,因此不应为空。我还可以在Android Studio的设备文件浏览器中看到这些示例文件为什么Android Studio的Java中的文件列表数组为空?,android,java-io,Android,Java Io,我正在使用Android Studio和Java 我已经编写了一个方法(即deleteWithExtension)来从设备内存中删除文件。此方法正在添加一些测试文件,并尝试获取这些文件的列表 但问题是,由于数组theFiles[]返回null,代码永远不会进入for循环。正如您所看到的,代码从示例文件添加过程开始,因此不应为空。我还可以在Android Studio的设备文件浏览器中看到这些示例文件 public static void CreateFile(Context mContext,
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();
}
}
非常感谢你。你确实帮了我很多。这解决了我的问题。