19
A
回答
10
您可以通過設置您自己的FileSystemView來做到這一點。
20
櫃面任何人都需要這樣的未來:
class DirectoryRestrictedFileSystemView extends FileSystemView
{
private final File[] rootDirectories;
DirectoryRestrictedFileSystemView(File rootDirectory)
{
this.rootDirectories = new File[] {rootDirectory};
}
DirectoryRestrictedFileSystemView(File[] rootDirectories)
{
this.rootDirectories = rootDirectories;
}
@Override
public File createNewFolder(File containingDir) throws IOException
{
throw new UnsupportedOperationException("Unable to create directory");
}
@Override
public File[] getRoots()
{
return rootDirectories;
}
@Override
public boolean isRoot(File file)
{
for (File root : rootDirectories) {
if (root.equals(file)) {
return true;
}
}
return false;
}
}
顯然需要做出更好的「createNewFolder」的方法,但是這確實限制用戶對多個目錄中的一個。
而且使用這樣的:
FileSystemView fsv = new DirectoryRestrictedFileSystemView(new File("X:\\"));
JFileChooser fileChooser = new JFileChooser(fsv);
或像這樣:
FileSystemView fsv = new DirectoryRestrictedFileSystemView(new File[] {
new File("X:\\"),
new File("Y:\\")
});
JFileChooser fileChooser = new JFileChooser(fsv);
5
阿蘭的解決方案已接近完成。三個問題是開放的解決:
- 點擊「首頁」 - 鍵踢用戶進行限制
- DirectoryRestrictedFileSystemView不是包外部訪問
- 出發點是不是root
- 追加@Override到DirectoryRestrictedFileSystemView
public TFile getHomeDirectory() { return rootDirectories[0]; }
集類和構造
public
變化
JFileChooser fileChooser = new JFileChooser(fsv);
到JFileChooser fileChooser = new JFileChooser(fsv.getHomeDirectory(),fsv);
我用它來限制用戶通過TrueZips TFileChooser和留在一個zip文件對上面的代碼進行細微的修改,這是完美的。非常感謝。
-1
不需要那麼複雜。您可以輕鬆地設置一個JFileChooser的選擇模式,這樣
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setMultiSelectionEnabled(false);
你可以在這裏閱讀How to Use File Choosers
相關問題
- 1. 限制一個JFileChooser到某個目錄
- 2. 如何限制打開(...)到目錄?
- 3. 如何獲取JFileChooser中的目錄?
- 4. 更改JFileChooser的目錄
- 5. 將文件從JFileChooser複製到新目錄
- 6. htaccess目錄限制
- 7. 如何限制目錄訪問
- 8. 如何限制對web根目錄內的目錄的訪問?
- 9. 如何限制在PHP中訪問目錄及其子目錄?
- 10. 如何限制git-diff到一個目錄而沒有子目錄?
- 11. 限制用戶到子目錄
- 12. 如何限制cd參數到bash中的目錄?
- 13. 如何限制文件選擇到單個目錄?
- 14. 如何將build目錄從build目錄複製到父目錄?
- 15. TFileOpenDialog中的限制目錄
- 16. 限制訪問目錄
- 17. 限制目錄瀏覽
- 18. 目錄列表與限制
- 19. 自動分配權限到任何文件複製到目錄
- 20. JFileChooser在Windows中更改默認目錄
- 21. 使用JFileChooser獲取目錄的路徑
- 22. 使用JFileChooser獲取工作目錄
- 23. 的Java JFileChooser的+資源目錄
- 24. JFileChooser:無法選擇根目錄
- 25. 設置JFileChooser打開當前目錄
- 26. 如何使用JFileChooser獲取目錄路徑?
- 27. Mac上的目錄的JFileChooser:如何使它不吸?
- 28. 如何刪除java中使用JFileChooser的目錄
- 29. 如何使用JFileChooser直接打開目錄(位置)?
- 30. 如何使jFilechooser雙擊打開特定目錄?
更多的參考,你如何得到默認的FileSystemView(例如委託給它)? – 2010-02-03 17:12:02
@Jason S - 可能通過靜態方法`getFileSystemView()` – McDowell 2010-02-03 17:47:28
如果有人可能需要它,這裏是OP想要的確切示例: http://tips4java.wordpress.com/2009/01/28/single -root-file-chooser/ – 2014-03-24 01:18:16