日期:2014-05-20  浏览次数:20663 次

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>