我現在有一個應用程序可以從目錄中選擇文件。我想要做的是能夠有一個功能,您可以在其中放入文件擴展名,如.gif
,.txt
等。單擊按鈕後,應用程序將運行該目錄並找到並選擇該類型的所有文件。我必須顯示的唯一代碼是我目前的應用程序,沒有這個。希望得到正確的方向或建議。過濾和選擇目錄中的文件
1
A
回答
3
private List<File> getMatchingFiles(File parent, final String extension) {
File[] files = parent.listFiles(new FileFilter() {
public boolean accept(File dir) {
String name = dir.getName();
if(name.endsWith(extension)) {
return true;
}
}
});
List<File> retval = Arrays.asList(files);
return retval;
}
+0
好一個+1的答案 –
+0
現在我可以將它放入actionevent爲不同文件類型添加不同的擴展名?我將要做的是搜索按鈕,例如,當您輸入.jpg時,這將返回該類型的所有文件?順便說一句,謝謝。 – rogerthat
1
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return (!name.endsWith(".gif")
}
};
2
什麼你正在尋找可能是java.io.File#list(filter)。
編輯:如果你想整個文件系統進行搜索,那麼你需要遞歸掃描每個direcotry:
public static void filter (String dirname, List<File> result) {
try {
for (String f : new File(dirname).list()) {
String filename = dirname + f;
File theFile = new File(filename);
if (theFile.isDirectory()) {
filter(filename + "/", result);
} else if (new FileFilter() {
public boolean accept(File pathname) {
return pathname.getName().endsWith(".gif");
}
}.accept(theFile)) {
result.add(theFile);
}
}
} catch (Exception e) {
// may raise null-pointer when access denied
}
}
public static void main(String[] args) {
List<File> result = new ArrayList<File>();
filter("F:/", result);
System.out.println(result.size());
}
3
用在JFileChooser
,迄今提供的所有答案都是次優的。請改爲JFileChooser.setFileFilter(javax.swing.filechooser.FileFilter)
以獲得最佳用戶體驗。
它最終可能會看起來像這樣:使用A Sample FileChooser Program代碼禮貌獲得
- 圖像。
相關問題
- 1. JAVA過濾目錄中的文件
- 2. JavaFX FileChooser選擇文件和/或目錄?
- 3. QFileDialog:選擇目錄和文件
- 4. 通過目錄選擇器複製選定目錄中的文件
- 5. 的Java文件目錄(過濾器)
- 6. 從目錄中選擇隨機文件
- 7. 從目錄中選擇某些文件
- 8. 如何通過「files」指令選擇子目錄中的文件?
- 9. GtkTreeView過濾和選擇
- 10. 從目錄中讀取文件並從Java中過濾文件
- 11. 目錄過濾
- 12. Python,選擇日誌文件的目錄
- 13. 使用目錄名稱上的過濾器遞歸刪除文件和目錄
- 14. Python過濾和從列表中選擇
- 15. PHP裝載目錄選擇HTML文件,並通過郵件
- 16. 結合文件和目錄選擇選項
- 17. 的jEdit - 過濾SVN目錄/文件出的「在目錄中搜索」功能
- 18. 文件選擇器選擇錯誤的目錄進行導出
- 19. 尋找通過目錄中的所有文件和子目錄
- 20. CFileDialog - 選擇過濾器和「提示」顯示所有文件
- 21. JQuery的目錄,嘶嘶聲和過濾
- 22. 選擇框不顯示在angularjs中過濾的選定項目
- 23. 過濾空目錄
- 24. 目錄過濾Maven
- 25. 帶文本,複選框和選擇的jQuery表格過濾器
- 26. 選擇/過濾箱
- 27. 在JFileChooser中隱藏「可選擇文件過濾器」小部件
- 28. 如何過濾文件目錄中的擴展名
- 29. 如何使用LINQ過濾目錄中的文件?
- 30. 用於過濾和選擇項目的Xpath表達式
@Bhesh Gurung 我沒有註冊。我沒有嘗試過任何東西。甚至不知道如何處理它。我知道如何通過擴展來過濾文件,但不知道如何將它們全部放在一個地方,類似於搜索特定文件類型的硬盤驅動器 – rogerthat