使用GetOpenFileName獲取檔案名,怎樣將多選的檔案名保存下來。
uj5u.com熱心網友回復:
#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++的代碼,不是太懂
uj5u.com熱心網友回復:
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的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/58866.html
標籤:Unity3D
上一篇:新手學習cocos2dx移植win下專案 報錯 CCLuaEngine.h file not bound
下一篇:游戲中關卡資訊的存盤
