Если вы пытаетесь перечислить все файлы в C:/
, имейте в виду, что есть и другие файлы, которые не являются ни скрытыми, ни системными файлами, но они все равно не будут открываться, потому что им требуются специальные привилегии / разрешения. Итак:
String[] files = file.list();
if (files!=null) {
for (String f : files) open(f);
}
Так что просто сравните, если массив имеет нулевое значение или нет, и спроектируйте свою рекурсию таким образом, чтобы она просто пропускала те файлы, массив которых для функции list()
равен нулю.
private void nodes(DefaultMutableTreeNode top, File f) throws IOException {
if (f.isDirectory()) {
File[] listFiles = f.listFiles();
if (listFiles != null) {
DefaultMutableTreeNode b1[] = new DefaultMutableTreeNode[listFiles.length];
for (int i = 0; i < b1.length; i++) {
b1[i] = new DefaultMutableTreeNode(listFiles[i].toString());
top.add(b1[i]);
File g = new File(b1[i].toString());
nodes(b1[i], g);
}
}
}
Вот код, который я использовал для создания проводника оконных файлов с помощью jtree.
Я решил эту проблему с помощью следующей директивы:
RewriteRule ^(.*)$ /dispatcher/run_app/%1/$1 [L,QSA]
А затем использовал следующий код в моем действии диспетчера:
$args = func_get_args();
$site_subdomain = $args[0];
$app_name = $args[1];
$action = $args[2];
$input = (isset($args[3]) ? $args[3] : '');
Спасибо за чтение, если да!