精华内容
下载资源
问答
  • 文件和文件夹多选demo

    2020-05-15 16:23:02
    分享一个windows系统下文件和文件夹多选的Demo.使用C#实现。可能需要freamwork环境,没没有freamwork的电脑测试过。
  • 文件文件夹多选对话框。基于MFC的文件选择对话框进行的改造,实现了同时选择多个文件和文件夹的功能。 对于系统虚拟目录“库”文件夹中进行选择文件和文件夹也做了特殊的处理。 其他语言(比如c#)中也可以...
  • 作者:朱金灿来源:http://blog.csdn.net/clever101 xp系统上进行文件多选,实际上其文件字符串数组的缓冲区是有限,并不能支持选择任意多个文件,...那么如何vista系统及win7系统支持打开文件对话框任意多选文件

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

       

           在xp系统上进行文件多选,实际上其文件字符串数组的缓冲区是有限,并不能支持选择任意多个文件,为此以前我还写过一篇文章:使用CFileDialog的钩子函数解决对话框的多选问题。实际上这种做法在vista系统及win7系统上并不支持。那么如何在vista系统及win7系统支持打开文件对话框任意多选文件呢?我想到windows是一个基于com的系统,没准使用com接口能做到。事实上是这样的,需要使用一个叫IFileOpenDialog的接口类。下面是示例代码:



    // Return the file system path for a given IShellItem.
    static bool PathFromShellItem ( IShellItem* pItem, CString& sPath )
    {
    	HRESULT hr;
    	LPOLESTR pwsz = NULL;
    
    	hr = pItem->GetDisplayName ( SIGDN_FILESYSPATH, &pwsz );
    
    	if ( FAILED(hr) )
    		return false;
    
    	sPath = pwsz;
    	CoTaskMemFree ( pwsz );
    	return true;
    }
    
    // Convert a pipe-separated list of filter strings into a vector of
    // COMDLG_FILTERSPEC. The vector<CString> is needed to actually hold the strings
    // that the COMDLG_FILTERSPEC structs will point to.
    static bool BuildFilterSpecList (_U_STRINGorID szFilterList,
    								 COMDLG_FILTERSPEC*& pVecFilter,int& nFilterNum )
    {
    	std::vector<CString> vecsFilterParts;
    	CString sFilterList = szFilterList.m_lpstr;
    	CString sToken;
    	int nIdx = 0;
    
    	// Split the passed-in filter list on pipe characters (MFC-style)
    	for(;;)
    	{
    		sToken = sFilterList.Tokenize(_T("|"), nIdx );
    		if ( sToken.IsEmpty() )
    			break;
    
    		vecsFilterParts.push_back ( sToken );
    	}
    
    	// There should be an even number of tokens in the string
    	if ( vecsFilterParts.size() & 1 )
    	{
    		ATLASSERT(0);
    		vecsFilterParts.pop_back();
    	}
       
    	if(vecsFilterParts.empty())
    		return false;
    
        nFilterNum = vecsFilterParts.size()/2.0;
        pVecFilter = new COMDLG_FILTERSPEC[nFilterNum];
    
    	// Use each pair of tokens for a COMDLG_FILTERSPEC struct.
    	/*for (std::vector<CString>::size_type i = 0; i < vecsFilterParts.size(); i += 2 )*/
    	for (std::vector<CString>::size_type i = 0; i <nFilterNum; i++)
    	{
    		USES_CONVERSION;
         
    		int j = i*2;
    
    		std::wstring strName = A2W(vecsFilterParts[j]);
            pVecFilter[i].pszName = new WCHAR[strName.length()+1];
            memset((void*)pVecFilter[i].pszName,'\0',(strName.length()+1)*sizeof(WCHAR));
            wcsncpy((wchar_t*)pVecFilter[i].pszName,strName.c_str(),strName.length());
    
    		j = j+1;
    		std::wstring strSpec = A2W(vecsFilterParts[j]);
    		pVecFilter[i].pszSpec = new WCHAR[strSpec.length()+1];
    		memset((void*)pVecFilter[i].pszSpec,'\0',(strSpec.length()+1)*sizeof(WCHAR));
    		wcsncpy((wchar_t*)pVecFilter[i].pszSpec,strSpec.c_str(),strSpec.length());
    	}
    //	return !vecFilters.empty();
    	return true;
    }
    
    void CMultiSelectDlg::OnBnClickedBtnVista()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	HRESULT hr;
    	CComPtr<IFileOpenDialog> pDlg;
    //	std::vector<CString> vecsFilterParts;
    //	std::vector<COMDLG_FILTERSPEC> vecFilters;
    
    	COMDLG_FILTERSPEC* pVecFilter = NULL;;
        int nFilterNum = 0;
    
    //	std::vector<std::wstring> vecFilters;
    
    	CString sDlgTitle = _T("Multi-selection File Open Dialog");
    	CString sOKButtonLabel = _T("确定");
    	CString sFilenameLabel = _T("文件名(N):");
    	DWORD dwFlags = 0;
    
    	// Create the file-open dialog COM object.
    	hr = pDlg.CoCreateInstance( __uuidof(FileOpenDialog) );
    
    	if ( FAILED(hr) )
    		return;
    
    	// Tell the dlg to load the state data associated with this GUID:
    	// {7D5FE367-E148-4a96-B326-42EF237A3662}
    	// This is not strictly necessary for our app (normally you'd wand loads
    	// and saves to share the same state data) but I'm putting this in for the demo.
    	static const GUID guidFileOpen = { 0x7D5FE367, 0xE148, 0x4A96, { 0xB3, 0x26, 0x42, 0xEF, 0x23, 0x7A, 0x36, 0x62 } };
    
    	hr = pDlg->SetClientGuid ( guidFileOpen );
    
    	// Call this helper function to convert a pipe-separated file spec list 
    	// (like MFC uses) to a vector of COMDLG_FILTERSPEC.
    	if ( BuildFilterSpecList(_T("Text files (*.txt)|*.txt|Executable files (*.exe;*.dll)|*.exe;*.dll|All files (*.*)|*.*|"),
    		pVecFilter,nFilterNum))
    		hr = pDlg->SetFileTypes(nFilterNum,pVecFilter);
    
    	// Set some other properties of the dialog. It's not the end of the world if
    	// any of these calls fail.
    	 USES_CONVERSION; 
    	hr = pDlg->SetTitle (A2W(sDlgTitle));
    	hr = pDlg->SetOkButtonLabel(A2W(sOKButtonLabel));
    	hr = pDlg->SetFileNameLabel(A2W(sFilenameLabel));
    
    	// Set the multi-select option flag.
    	hr = pDlg->GetOptions ( &dwFlags );
    	hr = pDlg->SetOptions ( dwFlags | FOS_ALLOWMULTISELECT );
    
    	// Set up our event listener.
    //	CComObjectStackEx<CDlgEventHandler> cbk;
    
    	// Show the dialog!
    	hr = pDlg->Show ( m_hWnd );
    
    	//if ( bAdvised )
    	//	pDlg->Unadvise ( dwCookie );
    
    	// Get the list of selected items and add each filename to the list ctrl.
    	if ( SUCCEEDED(hr) )
    	{
    		CComPtr<IShellItemArray> pItemArray;
    
    		hr = pDlg->GetResults ( &pItemArray );
    
    		if ( SUCCEEDED(hr) )
    		{
    			DWORD cSelItems;
    			hr = pItemArray->GetCount ( &cSelItems );
    
    			if ( SUCCEEDED(hr) )
    			{
    				int nCount = 0;
    				for ( DWORD j = 0; j < cSelItems; j++ )
    				{
    					CComPtr<IShellItem> pItem;
    					hr = pItemArray->GetItemAt ( j, &pItem );
    					if ( SUCCEEDED(hr) )
    					{
    						CString sPath;
    						if ( PathFromShellItem ( pItem, sPath ) )
    						{
    							m_listbox.AddString(sPath);
    							nCount++;
    						}
    					}
    				}
    				CString str;
    				str.Format(_T("%u files selected"), nCount);
    				m_static.SetWindowText(str);
    			}
    		}
    	}
        
    	for (int i  = 0;i<nFilterNum;i++)
    	{
    		delete []pVecFilter[i].pszName;
    		delete []pVecFilter[i].pszSpec;
    	}
    	delete []pVecFilter;
    }

     

            值得注意的是这个做法并不兼容xp系统,因此在使用哪种做法时需要你先对操作系统的版本进行判断。我专门写了一个例程供大家参考:VC文件多选对话框

     

    参考文献:

     

    1. WindowsVista for Developers——第六部分:新的文件对话框

     

    2. IFileDialog使用指南

    展开全文
  • 查看SD卡文件多选

    2013-11-21 17:33:45
    自己写的实现文件查看并多选的demo 根据目录多级显示文件,点击文件夹可打开文件夹,点击文件夹的checkbox或端点文件选中该文件夹或该文件 选中同时得到uri路径 可全选,反选,全部选择
  • 文件文件夹多选对话框。基于MFC的文件选择对话框进行的改造,实现了同时选择多个文件和文件夹的功能。 对于系统虚拟目录“库”文件夹中进行选择文件和文件夹也做了特殊的处理。 其他语言(比如c#)中也可以...
  • 通用打开文件对话框,可以多选文件。一个模块搞定!
  • [多选] HTML文件()更多相关问题[问答题,简答题] 什么情况下不准装药、放炮?[单选] 火焰矫正钢结构时,一般先矫正(),后矫正上拱,再矫正旁弯。[问答题,简答题] 爆破工接到起爆命令后,必须先发出爆破警号,至少等多...

    [多选] HTML文件()

    更多相关问题

    [问答题,简答题] 什么情况下不准装药、放炮?

    [单选] 火焰矫正钢结构时,一般先矫正(),后矫正上拱,再矫正旁弯。

    [问答题,简答题] 爆破工接到起爆命令后,必须先发出爆破警号,至少等多长时间,方可起爆?

    [单选] 部件装配图是表示设备中某一()的结构、形状、大小和连接装配关系及必要的加工、检验要求等内容的图样。

    [问答题,简答题] 发现并处理残炮、瞎炮时,必须在谁直接领导下进行?

    [单选] 振动式剪板机上下剪刀的水平间距是料厚的()。

    [问答题,简答题] 井下爆破材料库应采用硐室式或什么?

    [单选] 直线长度放样的试放法步骤不包括()。

    [单选] 连续剪切同规格尺寸板材时,可利用剪板机上的()定位。

    [问答题,简答题] 爆破工接到起爆命令后,必须先发出爆破警号,至少等多长时间,方可起爆?

    [问答题,简答题] 什么区域爆破后30min,人员方可进入工作面?

    [问答题,简答题] 炮泥具有什么作用?

    [单选] 硬度指标中洛氏硬度适合测定()的硬度。

    [单选] 剪钢板时钢板的变形属于()变形。

    [问答题,简答题] 工作面有两个或两个以上自由面时,在煤层中最小抵抗线不的小于多少米?

    [单选] 组装各种钢结构如桁架或其他结构,一般是在()上铆焊拼装组合,有的是直接制成单件,可直接在现场安装。

    [问答题,简答题] 影响炸药爆速的因素有哪些?

    [问答题,简答题] 普掘炮眼按其用途和位置不同分为几种炮眼?

    [单选] 截渗刺墙裂缝或断裂时,开挖附近土方,()破坏处,砌筑或浇筑修复。

    [单选] 连续剪切同规格尺寸板材时,可利用剪板机上的()定位。

    [问答题,简答题] 放炮撤人有哪些规定?

    [问答题,简答题] 何为“三人联锁”放炮?

    [单选] 组装各种钢结构如桁架或其他结构,一般是在()上铆焊拼装组合,有的是直接制成单件,可直接在现场安装。

    [单选] 总装配图不是制造零件的直接依据,不必注出每个零件的(),只标注与部件的装配、安装、运输、使用等有关尺寸。

    [问答题,简答题] 炮泥具有什么作用?

    [单选] 延长已知直线时,可在直线上两点分别竖立标杆,通过两标杆目测或拉直线确定出()第三根标杆。

    [单选] 选择零件主视图应考虑()的原则。

    [单选] 正圆柱螺旋面是()的运动轨迹。

    [问答题,简答题] 爆破母线与起爆电源或起爆器连接前,应当测量全线路的什么?

    [单选] 成对导向轴矫正机在矫正辊的两端设有()个导向轴辊。

    [单选] 部件装配图是表示设备中某一()的结构、形状、大小和连接装配关系及必要的加工、检验要求等内容的图样。

    [单选] 为增加强度,大型气柜常采用()等作水槽壁板材料。

    [问答题,简答题] 爆破前,脚线的连接工作可由谁进行?

    [单选] 选择零件主视图应考虑()的原则。

    [问答题,简答题] 产生拒爆的原因有哪些?

    [单选] 如果焊件在焊接时由于外力限制或自身刚性较大而不能自由收缩,则焊后变形小,但内部存在()。

    [单选] 为增加强度,大型气柜常采用()等作水槽壁板材料。

    [单选] 刨边机刨边时,板料应在下料时就预留加工余量,一般为()mm。

    [单选] 若排渗设施的保护层被破坏,应按()恢复。

    [单选] 若排渗设施的保护层被破坏,应按()恢复。

    [问答题,简答题] 常用的斜眼掏槽方式有哪些?

    [单选] 铆工常用设备规定,一级保养要求运转()h。

    [单选] 若反滤材料缺失,用符合要求的材料()。

    [问答题,简答题] 什么样的炮眼严禁爆破?

    [问答题,简答题] 装配起爆药卷的正确方法是有哪些?

    [单选] 钢结构上所有门类、仪表开孔和接管开孔,位置偏差应小于()mm。

    [单选] 方形螺旋夹具俗称卡兰,主要用于对工件的()。

    [单选] 搭接及T字接头的焊缝截面呈三角形,这种焊缝称为()焊缝。

    [单选] 非均质堤防的排渗设施主要有()和内部式排水。

    [单选] 若浆砌石坝出现塌陷,一般进行翻修处理,翻修施工内容不包括()。

    [问答题,简答题] 爆破工接到起爆命令后,必须先发出爆破警号,至少等多长时间,方可起爆?

    [问答题,简答题] 爆破图表应包括什么图,炮眼布置参数和装药参数,主要爆破条件和经济技术指标等?

    [单选] 总装配图不是制造零件的直接依据,不必注出每个零件的(),只标注与部件的装配、安装、运输、使用等有关尺寸。

    [问答题,简答题] 工作面有两个或两个以上自由面时,在煤层中最小抵抗线不的小于多少米?

    [问答题,简答题] 爆破引燃瓦斯的原因有哪些?

    [单选] 若反滤材料缺失,用符合要求的材料()。

    [单选] 若黏土防渗体发生陷坑、残缺、断裂等缺陷,应直接清基回填或()。

    [问答题,简答题] 爆破工接到起爆命令后,必须先发出爆破警号,至少等多长时间,方可起爆?

    [问答题,简答题] 爆破工接到起爆命令后,必须先发出爆破警号,至少等多长时间,方可起爆?

    [问答题,简答题] 掏槽眼的深度要比其他炮眼深多少?

    展开全文
  • js文件多选

    2019-04-23 01:23:28
    NULL 博文链接:https://lxmhope.iteye.com/blog/2181920
  • vb实现文件多选功能

    2021-05-07 11:16:11
    内容索引:VB源码,系统相关,文件选择 vb实现文件多选功能,没有复杂的功能,只是实现文件选择,常规情况下我们调用VB的文件对话框只能选择一个文件,本例子实现选择多个文件,扩展文件选择的功能,新手参考一下。
  • flash+php文件上传多选单选都可以 simple upload 单文件上传 rich upload 多文件上传
  • VC文件多选对话框

    2015-02-28 16:42:16
    实现了一个文件多选对话框,该对话框不限选择文件的个数,支持xp系统和win7系统。
  • Structs2+ExtJs多文件上传,解压后加入工程就可以使用,支持多选文件一次性加入列表,多文件上传,带有进度条和传输速度等等。。。。
  • Android文件选择器,可以实现多选,单选文件
  • Java SWT文件对话框中的文件多选

    千次阅读 2016-12-18 11:17:09
    //Java文件对话框实现文件多选主要有三种方式、我这里举三个例子 //他们分别对应Java的三个GUI可视编程框架,这里推荐大家使用Swing或者SWT的 //1、AWT FileDialog dialog=new FileDialog(new Frame(),"...
    //Java文件对话框实现文件多选主要有三种方式、我在这里举三个例子 
    //他们分别对应Java的三个GUI可视编程框架,这里推荐大家使用Swing或者SWT的
    
    
    //1、AWT
    FileDialog dialog=new FileDialog(new Frame(),"默认打开目录",FileDialog.LOAD);
    dialog.FileDialog(Dialog parent,String title, int mode);//创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。
    dialog.setVisible(true);//最后再通过调用dialog.setVisible(true)方法来使对话框显示到用户面前,由于它是一个模式对话框,当应用程序调用其setVisible(true)方法来显示对话框时,它将阻塞其余应用程序,直到用户选择一个文件。
    //其中最难懂的就是int mode,这是文件对话框的模式选择,有两个字段,
    //static int LOAD 此常量值指示文件对话框窗口的作用是查找要读取的文件。
    //static int SAVE 此常量值指示文件对话框窗口的作用是查找要写入的文件。
    //这里我的eclipse由于没有AWT我也没有做详细的测试了
    
    
    //2、Swing
    //这个就比较简单一些了
    
    JFileChooser chooser=new JFileChooser(new File("G:"));
    //new File("G:")      文件打开的默认目录
    chooser.setMultiSelectionEnabled(true);//这里是可以多选
    chooser.setFileSelectionMode(int   mod);//这里是选择选择信息的模式
    /*
    int mod;
    mod=JFileChooser.FILES_ONLY   ;只选择文件
    mod=JJFileChooser.DIRECTORIES_ONLY  ;只选择目录
    mod=JJFileChooser.FILES_AND_DIRECTORIES ;文件和目录
    */
    chooser.showDialog(chooser, "确认");//打开文件选择框
    File[] file=chooser.getSelectedFiles();
    for(File s:file){
    	System.out.println(s);
    }
    
    
    //3、SWT
    
    FileDialog fileDialog=new FileDialog(shell,SWT.OPEN|SWT.MULTI);
    //SWT.*大家可以去查一下SWT.MULTI 表示可以多选
    fileDialog.setFilterExtensions(new String[]{"*.mp3","*.wma","*.wav","*.wav"});
    //文件过滤的后缀名表示可以被选 择的文件类型
    fileDialog.open();
    String [] playslist=fileDialog.getFileNames();//这里是获取文件文件的名字 字符数组
    fileDialog.getFilterPath();//这里是获取文件夹的名字这个不是字符数组   但是通常配合上面的得到文件的全路径
    System.out.println(fileDialog.getFilterPath());
    for(String s:playslist){
    	System.out.println(s);
    }
    
    

     

    展开全文
  • CFileDialog文件多选

    千次阅读 2014-09-02 22:26:51
    void CTestDlg::OnButton1()  { #define MAX_CFileDialog_FILE_COUNT 99 #define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1) CString fileName;...char* p = fileName.GetBuf
    void CMy66Dlg::OnButton4() 
    {
    #define MAX_CFileDialog_FILE_COUNT 99
    #define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)

    CString fileName;
    char* p = fileName.GetBuffer( FILE_LIST_BUFFER_SIZE );
    CFileDialog dlgFile(TRUE);
    OPENFILENAME& ofn = dlgFile.m_ofn;//.GetOFN()
     
    ofn.Flags |= OFN_ALLOWMULTISELECT;
    ofn.lpstrFile = p;
    ofn.nMaxFile = FILE_LIST_BUFFER_SIZE;
     
        POSITION pos = NULL;  
        CString posPaht; 
    if(dlgFile.DoModal()==IDOK){
    fileName.ReleaseBuffer();
    for(pos=dlgFile.GetStartPosition();pos!=NULL;){
    CString str = dlgFile.GetNextPathName(pos);
    MessageBox(str, _T("提示"));  
    }
    }
    }
    展开全文
  • 文件上传 输入框 多选 设置

    千次阅读 2018-09-20 15:46:11
    上传格式通过js校验 ...//文件的扩展名 var attachType=“DOC|ZIP|DOCX|RAR|XLS|TXT|XLSX|PDF”; var filePaths = document.getElementById(“file”).files; for( var i=0;i&lt;filePaths.length; i++ ...
  • OpenDialog文件多选

    2019-05-29 09:24:00
    procedure TForm1.OpenFileListClick(Sender: TObject); var openDialog: TOpenDialog; I: Integer; ... openDialog := TOpenDialog.Create(Self);... openDialog.Filter := 'Excel文件|*.xlsx;*.xls';...
  • //Java文件对话框实现文件多选主要有三种方式、我这里举三个例子//他们分别对应Java的三个GUI可视编程框架,这里推荐大家使用Swing或者SWT的//1、AWTFileDialog dialog=new FileDialog(new Frame(),"默认打开目录",...
  • MFC编程中,常需要选择一个文件并获取其路径,选择文件并获取文件路径-可多选
  • 效果图实现此效果的必要关键是Style+DataTemplate关键代码:Click="CheckBox_Checked"Uid="{Binding id}"IsChecked="{Binding IsSelect , Mode=TwoWay}">通过Style中的Setter来引入模板。...那么,头部...
  • c# 选择本地文件多选、单选)

    千次阅读 2019-03-22 14:53:14
    选择本地文件多选或者单选的情况。读取文件位置和文件名。 //选择文件 private void button1_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); open...
  • VC_CFileOpen打开文件对话框中实现多选文件.visual c++
  • html文件批量上传并显示进度条,html文件多选上传进度条
  • ext结合swfUpload 多选文件上传,让你一次爽个够,多选文件
  • C# openfiledialog文件单选和多选

    千次阅读 2019-06-18 11:57:26
    System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog();...openFileDialog.Filter = "DataBank(*.xml)|*.xml|全部文件(*.*)|*.*"; openFileDialog.Multiselect = ...
  • 这个一个tableView多选可存储文件案例,源码SelectedMore,tableView多选 可存储文件。 测试环境:Xcode 6.2,iOS 6.0 以上
  • 前言 因为普元里面nui其实就是搞得miniui就先找了找miniui的api,看到了FileUpload,但是FileUpload...官方代码的简单介绍 http://www.miniui.com/docs/api/index.html#ui=htmlfile <input class="mini-h

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,975
精华内容 21,190
关键字:

在文件里多选