最近在做图片/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 openFilename unity openfilename 多选_java






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




方法二:使用OpenFileName.cs






unity openFilename unity openfilename 多选_unity openFilename_02






unity openFilename unity openfilename 多选_linux_03






unity openFilename unity openfilename 多选_unity openFilename_04






  • 相关参数:
  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 openFilename unity openfilename 多选_java_05