C#获取GetOpenFileName多选文件名

macro527 2017-08-17 07:22:51
使用GetOpenFileName获取文件名,怎样将多选的文件名保存下来。
...全文
641 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tony_Bean 2021-06-15
  • 打赏
  • 举报
回复

使用句柄存储文件名,然后通过句柄在内存中读取所有文件名字符串。

详细方法链接:https://social.msdn.microsoft.com/Forums/en-US/2f4dd95e-5c7b-4f48-adfc-44956b350f38/getopenfilename-for-multiple-files?forum=csharpgeneral

macro527 2017-08-18
  • 打赏
  • 举报
回复
public void onclick()
{
OpenFileDialog ofd = new OpenFileDialog(); //new一个方法
ofd.InitialDirectory = "file://" + UnityEngine.Application.dataPath; //定义打开的默认文件夹位置//定义打开的默认文件夹位置
ofd.Multiselect = true;

if (ofd.ShowDialog() == DialogResult.OK)
{
//显示打开文件的窗口
foreach (string file in ofd.FileNames)
{
Debug.Log(file);
}
}
}

unity中使用

调出的窗口不是win32的
macro527 2017-08-17
  • 打赏
  • 举报
回复
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) { OPENFILENAME ofn; TCHAR szOpenFileNames[80*MAX_PATH]; TCHAR szPath[MAX_PATH]; TCHAR szFileName[80*MAX_PATH]; TCHAR* p; int nLen = 0; ZeroMemory( &ofn, sizeof(ofn) ); ofn.Flags = OFN_EXPLORER | OFN_ALLOWMULTISELECT; ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szOpenFileNames; ofn.nMaxFile = sizeof(szOpenFileNames); ofn.lpstrFile[0] = '/0'; ofn.lpstrFilter = TEXT("All Files(*.*)/0*.*/0"); if( GetOpenFileName( &ofn ) ) { //把第一个文件名前的复制到szPath,即: //如果只选了一个文件,就复制到最后一个'/' //如果选了多个文件,就复制到第一个NULL字符 lstrcpyn(szPath, szOpenFileNames, ofn.nFileOffset ); //当只选了一个文件时,下面这个NULL字符是必需的. //这里不区别对待选了一个和多个文件的情况 szPath[ ofn.nFileOffset ] = '/0'; nLen = lstrlen(szPath); if( szPath[nLen-1] != '//' ) //如果选了多个文件,则必须加上'//' { lstrcat(szPath, TEXT("//")); } p = szOpenFileNames + ofn.nFileOffset; //把指针移到第一个文件 ZeroMemory(szFileName, sizeof(szFileName)); while( *p ) { lstrcat(szFileName, szPath); //给文件名加上路径 lstrcat(szFileName, p); //加上文件名 lstrcat(szFileName, TEXT("/n")); //换行 p += lstrlen(p) +1; //移至下一个文件 } MessageBox(NULL, szFileName, TEXT("MultiSelect"), MB_OK); } } 这是C++的代码,不是太懂

2,538

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧