Java 检查JList中是否存在文件
我在JFileChooser的JList中添加了一些文件。我正在添加一个名为“CHECK”的新按钮,单击该按钮时,会告知JList中是否存在特定文件(在已添加的文件中)。如果你们能告诉我这一步的正确步骤,那就太好了 提前谢谢你 这是我目前的代码Java 检查JList中是否存在文件,java,file,jlist,Java,File,Jlist,我在JFileChooser的JList中添加了一些文件。我正在添加一个名为“CHECK”的新按钮,单击该按钮时,会告知JList中是否存在特定文件(在已添加的文件中)。如果你们能告诉我这一步的正确步骤,那就太好了 提前谢谢你 这是我目前的代码 final JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DI
final JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.setMultiSelectionEnabled(true);
getContentPane().add(fileChooser, "cell 0 0 3 9");
JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, "cell 10 1 3 8,grow");
vector = new Vector<File>();
final JList list = new JList(vector);
scrollPane.setViewportView(list);
JPanel panel = new JPanel();
getContentPane().add(panel, "cell 3 4 7 1,grow");
JButton btnNewButton = new JButton("Add Files");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (File file : fileChooser.getSelectedFiles()) {
vector.add(file);
System.out.println("Added..!!");
}
list.updateUI();
}
});
panel.add(btnNewButton);
JButton btnNewButton_1 = new JButton("Remove Files");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(list.getSelectedIndices().length > 0) {
int[] selectedIndices = list.getSelectedIndices();
for (int i = selectedIndices.length-1; i >=0; i--) {
vector.removeElementAt(i);
System.out.println("Removed..!!");
}
}
list.updateUI();
}
});
panel.add(btnNewButton_1);
JButton btnNewButton_2 = new JButton("Check For Files");
btnNewButton_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = "";
if(list.getSelectedIndices().length > 0 ) {
//// to check if a file exists /////
}
}
});
panel.add(btnNewButton_2);
final JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES\u和\u目录);
fileChooser.setMultiSelectionEnabled(true);
getContentPane().add(文件选择器,“单元格0 0 3 9”);
JScrollPane scrollPane=新的JScrollPane();
getContentPane().add(滚动窗格,“单元格10 1 3 8,增长”);
向量=新向量();
最终JList列表=新JList(矢量);
scrollPane.setViewportView(列表);
JPanel面板=新的JPanel();
getContentPane().add(面板,“单元格3 4 7 1,增长”);
JButton btnNewButton=新JButton(“添加文件”);
addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
对于(文件:fileChooser.getSelectedFiles()){
添加(文件);
System.out.println(“添加..!!”;
}
list.updateUI();
}
});
面板。添加(BtnewButton);
JButton btnNewButton_1=新JButton(“删除文件”);
btnNewButton_1.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
if(list.getSelectedIndices().length>0){
int[]selecteddinces=list.getselecteddinces();
for(int i=selecteddinces.length-1;i>=0;i--){
向量移除元素(i);
System.out.println(“删除..!!”;
}
}
list.updateUI();
}
});
面板。添加(btnNewButton_1);
JButton btnNewButton_2=新JButton(“检查文件”);
btnNewButton_2.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
字符串名称=”;
if(list.getSelectedIndices().length>0){
////检查文件是否存在/////
}
}
});
面板。添加(btnNewButton_2);
Vector有一个contains方法,您可以使用该方法:
if(vector.contains(file)){
//Vector has the file
}
列表
,对具体类使用ArrayList
<代码>矢量自Java1.2以来已成为过去
final File toCheck = fileToCheckInList.getCanonicalFile();
for (File file : fileChooser.getSelectedFiles())
if (file.getCanonicalFile().equals(toCheck)) return true;
如果(file.isExists())
不起作用?但这只是检查一个文件是否存在,一般来说..我想知道一个文件是否存在于JList中,因为我已经在第一步添加了一些文件ih,如果不显示一些代码,我们很难提供帮助。你能发布你到目前为止尝试/拥有的吗?我已经添加了我当前的代码。请查看..为了更快地获得更好的帮助,请发布一个。我认为只有当文件不包含完整路径、仅包含文件名或包含字符串值而不是FileYes时,才有可能实现此功能..您是对的。我可以检查是否存在,但是在这种情况下,我必须指定整个路径作为输入,如果我不知道它所在的路径怎么办?例如,我指定了like;File File=新文件(“H:\\abc.txt”);如果(vector.contains(file)){--}感谢您的建议。但即使在这种情况下,我也必须指定路径,只有这样它才能正确地检查是否存在。如果我以前不知道路径(文件的路径),该怎么办?我们现在开始讨论您没有提供详细信息的细节。您使用什么字符串进行搜索,以及列表中有什么字符串?(当我说字符串的时候,我用得很松散,我知道里面有文件)。我总共添加了3个文件,2个xml文件是一个十六进制文件,我想从中搜索是否存在特定的xml文件。不,请给出一个用于构造这些文件的特定字符串的示例,或者更一般地说,调用toString
会产生的字符串。请用这些更新您的问题。