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打开本地文件夹对话框的主要内容,如果未能解决你的问题,请参考以下文章

怎么获取一个文件夹的路径,本地的路径

jQuery或者js保存文件到本地

js怎么打开本地的一个文件

Electron实践(二)—— 打开和保存本地文件

用js或jquery生成本地txt文件的代码

在 electron 中打开本地文件并在 wavesurfer.js 中渲染