所以,我有课程
public class Walker implements Runnable{
public File rootDirectory;
private ScrollPane outputField;
Walker(String rootDirectoryPath,ScrollPane outputField ) throws FileNotFoundException{
this.outputField = outputField;
File file = new File(rootDirectoryPath);
if (file.exists() && file.isDirectory())
rootDirectory = file;
else
throw new FileNotFoundException();
}
@Override
public void run(){
scanDirectory(rootDirectory);
}
void scanDirectory(File directory){
File[] files = directory.listFiles();
if (files != null){
for (File f : files){
final String path = f.getAbsolutePath();
if (SwingUtilities.isEventDispatchThread()){
outputField.append(path);
} else {
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
outputField.append(path);
}
});
}
if (f.isDirectory() && !f.isHidden()){
scanDirectory(f);
}
}
}
}
}
和类ScrollPane
import javax.swing.*;
class ScrollPane extends JScrollPane{
private static JTextArea jta = new JTextArea();
private final String WARNING_MESSAGE =
"Вы ввели неверный путь или он ссылается на регулярный файл.";
ScrollPane(){
super(jta);
setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
}
void append(String s){
jta.append(s + '\n');
getVerticalScrollBar().setValue(getVerticalScrollBar().getMaximum());
}
/**
* Метод очищает панель вывода.
*/
void clearAll(){
jta.setText("");
}
void showWarningMessage(){
jta.append(WARNING_MESSAGE);
}
}
我想用这样的文件创建一个树文件夹: enter image description here
我想替换。以便在其中创建文件夹/文件树 例如,FileSystemView类有一个返回目录的getRoots()方法,以及返回文件的getFiles()方法。但我不能将它应用于我的任务,因为我需要创建一个不是整个文件系统的树。但只能从指定目录开始。也就是说,用户指定一个目录,例如D:\ JAVA \,并且在退出时应该获得JAVA树/以及其他文件夹和文件。其中包括
答案 0 :(得分:0)
答案 1 :(得分:0)
我需要创建一个不是整个文件系统的树。但只能从指定目录开始。
使用File
课程。您可以使用listFiles(...)
方法获取指定File
的文件/目录。