JS打开本地文件夹对话框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS打开本地文件夹对话框相关的知识,希望对你有一定的参考价值。
想通过JS在网页上打开本地的文件夹对话框,比如打开如图中的文件夹对话框就行,不需要选择文件,也不需要返回任何值。
// 浏览文件夹(指定文件路径)function BrowseFolder()
try
var Message = "Please select the folder path."; //选择框提示信息
var Shell = new ActiveXObject("Shell.Application");
var Folder = Shell.BrowseForFolder(0, Message, 0x0040, 0x11); //起始目录为:我的电脑
//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 + "\\";
return Folder;
catch (e)
alert(e.message);
//保存文件
function SaveInfoToFile(folder, fileName)
var filePath = folder + fileName;
var fileInfo = "hahahaha";
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.CreateTextFile(filePath, true);
file.Write(fileInfo);
file.Close();
以上代码并没有处理xml,关于xml可以找相关资料。 参考技术A 用js 点击后调用一个 <input type="file" />的事件 应该可以 参考技术B 安全原因,要完成此操作js很难
CFileDialog类实现文件夹路径的获取
选择文件夹,是用CFileDialog类吗?回答的好加分
请看清楚图片和问题再回答,谢谢
CFileDialog pCFileDialog(true,NULL,NULL,0,"文本文件(*.txt)|*.txt");
//CFileDialog pCFileDialog最后一个参数是打开文件对话框的筛选器内容,不是文件路径
pCFileDialog.m_ofn.lpstrTitle = "打开文件 ";
char pbuf[1024];
memset(pbuf,0,1024);
if(pCFileDialog.DoModal()==IDOK)
CFile filename(pCFileDialog.GetFileName(),CFile::modeRead);
filename.Read(pbuf,1024);
MessageBox(pbuf);
filename.Close;
参考技术A http://hi.baidu.com/lucifer_mike/blog/item/16961bef0bce3be3ce1b3ef9.html
CString sFolderPath;
BROWSEINFO bi;
char Buffer[MAX_PATH];
//初始化入口参数bi开始
bi.hwndOwner = NULL;
bi.pidlRoot =NULL;//初始化制定的root目录很不容易,
bi.pszDisplayName = Buffer;//此参数如为NULL则不能显示对话框
bi.lpszTitle = "修改接收路径";
//bi.ulFlags = BIF_BROWSEINCLUDEFILES;//包括文件
bi.ulFlags = BIF_EDITBOX;//包括文件
bi.lpfn = NULL;
bi.iImage=IDR_MAINFRAME;
//初始化入口参数bi结束
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框
if(pIDList)
SHGetPathFromIDList(pIDList, Buffer);
//取得文件夹路径到Buffer里
sFolderPath = Buffer;//将文件夹路径保存在一个CString对象里
LPMALLOC lpMalloc;
if(FAILED(SHGetMalloc(&lpMalloc)))
return;
lpMalloc->Free(pIDList);
lpMalloc->Release();
MessageBox(sFolderPath,"Title",MB_OK);
参考资料:http://hi.baidu.com/lucifer_mike/blog/item/16961bef0bce3be3ce1b3ef9.html
本回答被提问者和网友采纳 参考技术B VC6的实现不了以上是关于JS打开本地文件夹对话框的主要内容,如果未能解决你的问题,请参考以下文章