java实现可以选择文件夹功能
要求在jsp页面上选择文件夹,action中获取路径
------解决方案--------------------
用java实现文件夹路径的选择:
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class SystemOS extends JFrame implements ActionListener{
JPanel pnlMain;
JTextField txtfile;
JButton btnSelect;
JFileChooser fc = new JFileChooser();
public SystemOS() {
pnlMain=new JPanel();
this.getContentPane().add(pnlMain);
txtfile=new JTextField(10);
btnSelect =new JButton("选择");
btnSelect.addActionListener(this);
pnlMain.add(txtfile);
pnlMain.add(btnSelect);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btnSelect){
/*
这是尤为重要的。因为JFileChooser默认的是选择文件,而需要选目录。
故要将DIRECTORIES_ONLY装入模型
另外,若选择文件,则无需此句
*/
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int intRetVal = fc.showOpenDialog(this);
if( intRetVal == JFileChooser.APPROVE_OPTION){
txtfile.setText(fc.getSelectedFile().getPath());
}
}
}
public static void main(String[] args){
JFrame f = new SystemOS();
f.setSize(200,300);
f.setVisible(true);
}
}
------解决方案--------------------
Java code
<%@page language="java" contentType="text/html;charset=gbk"%>
<script>
/**//***
path 要显示值的对象id
****/
function browseFolder(path) {
try {
var Message = "\u8bf7\u9009\u62e9\u6587\u4ef6\u5939"; //选择框提示信息
var Shell = new ActiveXObject("Shell.Application");
var Folder = Shell.BrowseForFolder(0, Message, 64, 17);//起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
if (Folder != null) {
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if (Folder.charAt(Folder.length - 1) != "\\") {
Folder = Folder + "\\";
}
document.getElementById(path).value = Folder;
return Folder;
}
}
catch (e) {
alert(e.message);
}
}
</script>
<html>
<head><title>AA</title></head>
<body>
<table>
<tr>
<td>
<input type="text" name="path" />
</td>
<td>
<input type="button" onclick="browseFolder('path')" value="选择生成路径" />
</td>
</tr>
</table>
</body>
</html>