新浪博客

Unity|打开文件对话框批量选择文件

2019-03-22 20:27阅读:
最近在做图片/PDF文件转文字的一个工具,需要实现批量导入外部文件功能,总结一下相关方法。


方法一:使用windows窗体函数
  1. 获取System.Windows.Forms.dll文件:到Unity安装路径( Editor\Data\Mono\lib\mono\2.0)中将System.Windows.Forms.dll复制到相关工程的Plugins目录下;
  2. 修改Edit -> Project Settings -> Player->Other Setting中的API Compatibility Level为.Net 2.0;

  • 相关代码:


Unity|打开文件对话框批量选择文件



  • 缺陷:导入外部文件时,会出现“Could not register the window class. win32 error 0”弹窗。


方法二:使用OpenFileName.cs


Unity|打开文件对话框批量选择文件


Unity|打开文件对话框批量选择文件


Unity|打开文件对话框批量选择文件


  • 相关参数:
  1. 0x00000200(OFN_ALLOWMULTISELECT)指定文件名列表框允许多选。如果同时你设置了 0x00080000(OFN_EXPLORER)标记,对话框使用Explorer风格用户界面;否则它使用旧风格用户界面。
  2. 如果选择了一个以上的文件,lpstrFile缓冲返回当前目录下所有被选择的文件的文件名。对于Explorer风格对话框,目录和文件名是被NULL分隔的,在最后的文件名后带有额外的NULL。这个格式使Explorer风格的对话框能返回包含空格的长文件名。对于旧风格对话框,目录和文件字符串是被空格分隔的,函数为带有空格的文件名使用短文件名。可以使用FindFirstFile函数在短文件名和长文件名之间转换。
  3. 经过测试,“目录和文件名是被NULL分隔的”中的NULL是指\0。
  4. 具体参数参考:https://msdn.microsoft.com/zh-cn/visualc/ms646839(v=vs.80).aspx


——补充(打开文件夹并保存文档)
Unity|打开文件对话框批量选择文件

我的更多文章

下载客户端阅读体验更佳

APP专享