做一项目,在WEB页面中要用到浏览文件夹。Windows自带的那种树形目录的。
想了想,应该是JavaScript写的。
网上找不到合适的。
不是浏览文件,是文件夹。
有什么解决方法或者代码都行。
有现成的最好。

解决方案 »

  1.   

    浏览器有个权限问题,所以问题比较难解决。除非浏览器的漏洞没有补上,还有得一试,应该是用到new ActiveXObject("Scripting.FileSystemObject");
      

  2.   

    g_fSelectFolderDlg(CString* lpstrFolder,CString strIniFolder,bool bAvailNewFolder) 

        bool            ret; 
        char            lpszPath[MAX_PATH]; 
        LPMALLOC        lpMalloc; 
        BROWSEINFO        sInfo; 
        LPITEMIDLIST    lpidlRoot; 
        LPITEMIDLIST    lpidlBrowse;     if(lpstrFolder == NULL) 
            return    false;     if(::SHGetMalloc(&lpMalloc) != NOERROR) 
            return    false;     ret = false;     if(strIniFolder != "") 
        { 
            if(strIniFolder.Right(1) == "\\") 
                strIniFolder = strIniFolder.Left(strIniFolder.GetLength() - 1);            //删除末尾的"\\"     }     ::SHGetSpecialFolderLocation(NULL, CSIDL_DRIVES, &lpidlRoot);    //取得选定的文件夹名 
        ::ZeroMemory(&sInfo, sizeof(BROWSEINFO)); 
        sInfo.pidlRoot        = lpidlRoot; 
        sInfo.pszDisplayName = lpszPath; 
        sInfo.lpszTitle        = _T("选择文件夹"); 
        sInfo.ulFlags        = BIF_RETURNONLYFSDIRS; 
        if(bAvailNewFolder == true) 
            sInfo.ulFlags    |= BIF_EDITBOX | BIF_NEWDIALOGSTYLE | BIF_USENEWUI; 
        sInfo.lpfn            = NULL; 
        sInfo.lParam        = (LPARAM)strIniFolder.GetBuffer(0);     lpidlBrowse = ::SHBrowseForFolder(&sInfo);            //显示文件夹选择对话框     if(lpidlBrowse != NULL) 
        { 
            if(::SHGetPathFromIDList(lpidlBrowse,lpszPath))    //取得文件夹名         
            { 
                *lpstrFolder = ""; 
                *lpstrFolder = lpszPath;             if(*lpstrFolder != "") 
                { 
                    if(lpstrFolder->Right(1) != "\\") 
                        *lpstrFolder  = "\\";              //在末尾时附加"\\" 
                } 
            }         ret = true; 
        }     if(lpidlBrowse != NULL) 
            ::CoTaskMemFree(lpidlBrowse); 
        if(lpidlRoot != NULL) 
            ::CoTaskMemFree(lpidlRoot);     lpMalloc->Release();     return    ret; 
    }  
      

  3.   

    楼上的是C++?实现起来一点也不难, 但你要搞清楚只有服务端脚本才能干.
    思路就是遍历当前目录的所有子文件夹, 并适当转换路径为链接, 比如这样 xxx.xx?path=/folder/...然后再判断 path 是否为空, 如果非空就把 path 进行换行, 
    干这些需要涉及到安全问题, ...如果技术含量不够那还是不要弄好了.
      

  4.   

    楼上的能不能给代码
    btbtd