बैठाना किसी और भविष्य में इस की जरूरत है:
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);
स्रोत
2008-08-28 15:57:59
अधिक संदर्भ कैसे (उदाहरण के लिए करने के लिए सौंपने के लिए) यदि आप डिफ़ॉल्ट filesystemview मिलता है पढ़ सकते हैं की तरह एक JFileChooser का चयन मोड सेट कर सकते हैं? –
@ जेसन एस - संभवतः स्थिर विधि 'getFileSystemView() ' – McDowell
के माध्यम से अगर किसी को इसकी आवश्यकता हो, तो ओपी क्या चाहता था इसका एक सटीक उदाहरण है: http://tips4java.wordpress.com/2009/01/28/single -root-file-chooser/ –