/// <summary> /// 调用WindowsExploer 并返回所选文件夹路径 /// </summary> /// <param name="dialogtitle">打开对话框的标题</param> /// <returns>所选文件夹路径</returns> public static string GetPathFromWindowsExplorer(string dialogtitle = "请选择下载路径") { string res; OpenDialogDir ofn2 = new OpenDialogDir(); // 存放目录路径缓冲区 ofn2.pszDisplayName = new string(new char[2000]); ofn2.pidlRoot = ILCreateFromPathW(Application.dataPath.Replace('/', '\\')); // 标题 ofn2.lpszTitle = dialogtitle; // 新的样式,带编辑框 ofn2.ulFlags = BIF_NEWDIALOGSTYLE; IntPtr pidlPtr = WindowsExplorer.SHBrowseForFolder(ofn2); char[] charArray = new char[2000]; for (int i = 0; i < 2000; i++) { charArray[i] = '\0'; } WindowsExplorer.SHGetPathFromIDList(pidlPtr, charArray); res = new String(charArray); res = res.Substring(0, res.IndexOf('\0')); return(res); }
public static string GetFileFromWindowsExplorer() { var backPath = ""; OpenDialogFile openFileName = new OpenDialogFile(); openFileName.structSize = Marshal.SizeOf(openFileName); openFileName.file = new string(new char[256]); openFileName.maxFile = openFileName.file.Length; openFileName.fileTitle = new string(new char[64]); openFileName.maxFileTitle = openFileName.fileTitle.Length; openFileName.initialDir = Application.dataPath.Replace('/', '\\');//默认路径 openFileName.title = "打开文件"; openFileName.flags = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000008; if (WindowsExplorer.GetSaveFileName(openFileName)) { Debug.Log(openFileName.file); Debug.Log(openFileName.fileTitle); backPath = openFileName.file; } return(backPath); }