![](/img/trans.png)
[英]How to create folder in the internal storage instead of /storage/emulated/0 in Android?
[英]ArrayList for Files in Folder Android Internal Storage /storage/emulated/0/
我想在活动中单击一个按钮,然后打开一个单独的活动,该活动显示要访问的文件夹的数组列表。 因此,进入下一个活动的代码很简单(以意图开始新的活动)。 但是,我想在arraylist的此新活动中显示文件夹的内容。
该内容的路径在设备的内部存储中(而不是外部/ SD卡存储中)。
我想显示以下目录中的文件
/storage/emulated/0/Android/data/com.../files/
com ...是伪造的路径名,它只是为了说明其中有一个程序包名称。
因此,最重要的是我想在新活动中显示arraylist中文件(文本文件或图片等)中的内容。 每当我尝试使用“文件”指向该路径时,它不会显示arraylist,而是显示一个空白屏幕。
因此,例如:
String path = "/storage/emulated/0/Android/data/com.../files/";
File dir = new File(path);
List values = new ArrayList();
String[] list = dir.list();
if (list != null) {
for (String file : list) {
if (!file.startsWith(".")) {
values.add(file);
}
}
}
Collections.sort(values);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_2, android.R.id.text1, values);
setListAdapter(adapter);
我的解决方案如下。 我还无法使用下面的代码看到的文件来实现FileInputStream。 通过使用子字符串,我可以获取文件名,但是当我使用FileInputStream时,很难读取它。 我的异常抛出在这一行代码上。
FileInputStream in = openFileInput(“ test.txt”);
我对实际问题的解决方案。
内部oncreate
lvFiles = (ListView)findViewById(R.id.listViewFiles);
String path = "/storage/emulated/0/Android/data/com.../files/";
try {
List<File> files = getListFiles(new File(path));
String[] namesOfFiles = new String[files.size()];
for (int i = 0; i < files.size(); i++) {
namesOfFiles[i] = files.get(i).toString();
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.filetextview, namesOfFiles);
lvFiles.setAdapter(arrayAdapter);
//lvFiles.setAdapter(new CustomAdapterArrayAdapter(FilesList.this, files));
}
catch (Exception e)
{
}
onCreate内部的结尾。 将其放在onCreate中,以便在打开页面后立即填充列表视图。
getListFiles方法开始
private List<File> getListFiles(File parentDir)
{
ArrayList<File> inFiles = new ArrayList<File>();
File[] files = parentDir.listFiles();
for (File file : files) {
//if (file.getName().endsWith(".txt"))
if (file.isDirectory()) {
inFiles.addAll(getListFiles(file));
} else {
if(file.getName().endsWith(".txt")){
inFiles.add(file);
}
}
}
return inFiles;
}
getListFiles方法结束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.