如何秀出 Unicode 的檔名? |
尚未結案
|
chtai
高階會員 發表:68 回覆:238 積分:116 註冊:2004-05-21 發送簡訊給我 |
大家好:
我的問題是這樣的,現在我有個資料夾底下有不少的檔案跟目錄,
檔名有繁簡中日英韓德法義...等多國文字。 我想請問的是,
要如何取得這些檔案跟目錄的名稱,並把它們顯示在 RichEdit 裡? 以前我取得檔名的作法如下,接下來要怎麼辦呢 ?
WIN32_FIND_DATA filedata; // Structure for file data HANDLE filehandle; // Handle for searching filehandle = FindFirstFile((Dir "\\*.*").c_str(), &filedata); if (filehandle != INVALID_HANDLE_VALUE) { do { /* do something.... */ } while (FindNextFile(filehandle, &filedata)) ; FindClose(filehandle) ; }-- http://www.csie.nctu.edu.tw/~chtai/software.php 好用免費軟體的收集網頁
------
My Web: http://nelson.csie.us My Blog: http://blog.nelson.csie.us |
jeff377
初階會員 發表:9 回覆:60 積分:33 註冊:2004-08-10 發送簡訊給我 |
你可以參考「TntWare Delphi Unicode Controls」,它可以支援unicode檔名。 http://www.tntware.com/delphicontrols/unicode/ 發表人 - jeff377 於 2005/12/06 23:06:27
|
leon_sun_1
一般會員 發表:1 回覆:2 積分:0 註冊:2005-06-30 發送簡訊給我 |
1.試試看我的方式,請先使用MultiByteToWideChar函式將路徑轉成Unicode。
2.再依紅字部分修改
引言: WIN32_FIND_DATAW filedata; // Structure for file data HANDLE filehandle; // Handle for searching filehandle = FindFirstFileW((Dir "\\*.*").c_str(), &filedata); if (filehandle != INVALID_HANDLE_VALUE) { do { /* do something.... */ } while (FindNextFileW(filehandle, &filedata)) ; FindClose(filehandle) ; } |
chtai
高階會員 發表:68 回覆:238 積分:116 註冊:2004-05-21 發送簡訊給我 |
引言: 1.試試看我的方式,請先使用MultiByteToWideChar函式將路徑轉成Unicode。 2.再依紅字部分修改想請問一下, 1. 要怎麼用 MultiByteToWideChar 呢 ? 在這個例子裡,轉出來的東西是存在哪個變數呢 ? 2. FindNextFileW 這個函式我在 MSDN 找不到耶,BCB 的 help 裡頭也沒有,請問這需要 include 什麼嗎? 3. 要怎麼把找到的名稱放到 RichEdit 裡頭呢,有需要再做什麼轉換嗎 ? 謝謝 -- http://www.csie.nctu.edu.tw/~chtai/software.php 好用免費軟體的收集網頁引言: WIN32_FIND_DATAW filedata; // Structure for file data HANDLE filehandle; // Handle for searching filehandle = FindFirstFileW((Dir "\\*.*").c_str(), &filedata); if (filehandle != INVALID_HANDLE_VALUE) { do { /* do something.... */ } while (FindNextFileW(filehandle, &filedata)) ; FindClose(filehandle) ; }
------
My Web: http://nelson.csie.us My Blog: http://blog.nelson.csie.us |
leon_sun_1
一般會員 發表:1 回覆:2 積分:0 註冊:2005-06-30 發送簡訊給我 |
WCHAR wDir[1024]; int nLenOfWideCharStr; WideString Dir; nLenOfWideCharStr = MultiByteToWideChar(CP_ACP, 0, &buf[1], -1, NULL, 0); MultiByteToWideChar(CP_ACP, 0, &buf[1], -1, wDir, nLenOfWideCharStr); Dir = wDir; filehandle = FindFirstFileW((Dir "\\*.*").c_bstr(), &filedata); if { do { .... } while (FindNextFileW(filehandle, &filedata)); FindClose(filehandle) ; }1. MultiByteToWideChar建議使用兩次,第一次取得要轉換WCHAR的長度,第二次才是真正轉換。轉換的值是存在上述wDir裡。 2. 至於FindNextFileW,是BCB裡的函式,定義在winbase.h裡,你可以在BCB裡用滑鼠游標指到函式名稱上然後再按滑鼠右鍵會出現PopupMenu,點選第一項Find Declaration,就會跳出winbase.h的頁面。 3. 至於您第三個問題須自行製作一個可以顯示Unicode的RichEdit或是安裝tntunicodecontrols裡面的RichEdit。 |
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
可以參考看看
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=79237
KTOP的UNICODE問答約有589筆
http://delphi.ktop.com.tw/quicksearch.exe/quicksearch?SearchStr=UNICODE
看一下也可以有意外發現 網友大大
請問你的作品,文章等 是否願意貢獻 給於KTOP網站,日後使用於DVD/VCD發售
如果可以請在簽名檔上宣告個人授權
以加速KTOP網站日後DVD/VCD資料的誕生
台灣災難都是事後算帳
無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 絲絲有2種
.net有很多種 一種治眼睛是MS 另一種治腦筋是Borland
|
Dennies
一般會員 發表:1 回覆:12 積分:2 註冊:2006-07-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |