public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fflist);
pathtext = (TextView) findViewById(R.id.pathtext);
getFileFromList("/");
registerForContextMenu(getListView());
}
protected void onListItemClick(ListView l, View v, int position, long id) {
Log.d(LOG_TAG, String.valueOf(position));
String clickedItem = neededFilenames.get(position);
getFileFromList(clickedItem);
}
public void getFileFromList(String path) {
Log.d(LOG_TAG, path);
neededFilenames = new ArrayList<String>();
File dir = new File(path);
File[] filenames = dir.listFiles();
Log.d(LOG_TAG, String.valueOf(filenames));
if (filenames != null) {
for (int i = 0; i < filenames.length; i++) {
if (filenames[i].isDirectory() && !filenames[i].isHidden() && filenames[i].canRead()) {
neededFilenames.add(filenames[i].getName());
}
}
Log.d(LOG_TAG, String.valueOf(neededFilenames));
} else Toast.makeText(this, "something wrong", Toast.LENGTH_SHORT).show();
Collections.sort(neededFilenames);
pathtext.setText("Location: /" + path);
FileFolderAdapter adapter = new FileFolderAdapter(this, neededFilenames);
setListAdapter(adapter);
}
答案 0 :(得分:0)
实际上我发现了这个&#34;浏览器&#34;只能在根文件夹中工作,然后单击一下&lt;因为在开始时,当你只使用物品名称时,你就有了合法的路径&#34; to root-&#34; /&#34; ,点击一下后,您将获得&#34; path&#34;变量为 - &#34; /文件夹&#34;这仍然是文件夹的合法路径,在点击第一个文件夹中的任何文件夹后,你只有那个文件夹名称&#34;文件夹&#34;,没有所有路径到root&#34; /&#34; ,所以你不能创建新的文件名称,而没有从root的完整路径。不确定它是否可以理解,但也许它可以帮助某人:)