日文電腦上建立路徑發生錯誤 |
缺席
|
pchw8598
一般會員 發表:43 回覆:63 積分:21 註冊:2003-11-09 發送簡訊給我 |
大家好,我用XE5寫了一個簡單的建立資料夾的程式(如下)。
在我們自己的電腦上執行無誤,但是在日文的電腦上執行卻發生錯誤。 我是在c:\program files\下面建立一個"TWordPchw"資料夾。 在日文的電腦執行時,卻變成了"c:羊Program Files羊TWordPchw",(我打不出那個"羊"字:就是"羊"字少最下面那一橫撇")因此發生錯誤,無法建立資料夾。 我試了好久都沒成功,請問各位大大是否有解決的方法??? 謝謝 //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { wchar_t szBuffer[MAX_PATH]; DWORD err; UnicodeString InstallPath,Str,DefAppPath=L"\\TWordPchw"; SHGetSpecialFolderPath(NULL, szBuffer, CSIDL_PROGRAM_FILES, FALSE); ShowMessage (szBuffer); InstallPath=UnicodeString(szBuffer); Str=InstallPath DefAppPath; //動態書法的預設安裝路徑 ShowMessage (InstallPath); ShowMessage (Str); //建立 TWordPchw目錄 // UniStringToWChar(wStr, Str); if(!::CreateDirectory(Str.c_str(),NULL)) { err=GetLastError(); if(err==ERROR_ALREADY_EXISTS); else { ShowMessage(UnicodeString("建立資料夾失敗")); return; } } ShowMessage(UnicodeString(L"建立" Str L"資料夾")); } //--------------------------------------------------------------------------- | ||
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
符號是指這個: ¥??
===================引 用 pchw8598 文 章=================== 大家好,我用XE5寫了一個簡單的建立資料夾的程式(如下)。 在我們自己的電腦上執行無誤,但是在日文的電腦上執行卻發生錯誤。 我是在c:\program files\下面建立一個"TWordPchw"資料夾。 在日文的電腦執行時,卻變成了"c:羊Program Files羊TWordPchw",(我打不出那個"羊"字:就是"羊"字少最下面那一橫撇")因此發生錯誤,無法建立資料夾。 我試了好久都沒成功,請問各位大大是否有解決的方法??? 謝謝 //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { wchar_t szBuffer[MAX_PATH]; DWORD err; UnicodeString InstallPath,Str,DefAppPath=L"\\TWordPchw"; SHGetSpecialFolderPath(NULL, szBuffer, CSIDL_PROGRAM_FILES, FALSE); ShowMessage (szBuffer); InstallPath=UnicodeString(szBuffer); Str=InstallPath DefAppPath; //動態書法的預設安裝路徑 ShowMessage (InstallPath); ShowMessage (Str); //建立 TWordPchw目錄 // UniStringToWChar(wStr, Str); if(!::CreateDirectory(Str.c_str(),NULL)) { err=GetLastError(); if(err==ERROR_ALREADY_EXISTS); else { ShowMessage(UnicodeString("建立資料夾失敗")); return; } } ShowMessage(UnicodeString(L"建立" Str L"資料夾")); } //--------------------------------------------------------------------------- |
||
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
試試 System.IOUtils.pas 單元裡的:
IncludeTrailingPathDelimiter() TPath.DirectorySeparatorChar 看看能不能解決你的問題。 ===================引 用 pchw8598 文 章=================== 大家好,我用XE5寫了一個簡單的建立資料夾的程式(如下)。 在我們自己的電腦上執行無誤,但是在日文的電腦上執行卻發生錯誤。 我是在c:\program files\下面建立一個"TWordPchw"資料夾。 在日文的電腦執行時,卻變成了"c:羊Program Files羊TWordPchw",(我打不出那個"羊"字:就是"羊"字少最下面那一橫撇")因此發生錯誤,無法建立資料夾。 我試了好久都沒成功,請問各位大大是否有解決的方法??? 謝謝 |
||
pchw8598
一般會員 發表:43 回覆:63 積分:21 註冊:2003-11-09 發送簡訊給我 |
|||
pchw8598
一般會員 發表:43 回覆:63 積分:21 註冊:2003-11-09 發送簡訊給我 |
===================引 用 Main Chen 文 章=================== 試試 System.IOUtils.pas 單元裡的: IncludeTrailingPathDelimiter() TPath.DirectorySeparatorChar 看看能不能解決你的問題。 ===================引 用 pchw8598 文 章=================== 大家好,我用XE5寫了一個簡單的建立資料夾的程式(如下)。 在我們自己的電腦上執行無誤,但是在日文的電腦上執行卻發生錯誤。 我是在c:\program files\下面建立一個"TWordPchw"資料夾。 在日文的電腦執行時,卻變成了"c:羊Program Files羊TWordPchw",(我打不出那個"羊"字:就是"羊"字少最下面那一橫撇")因此發生錯誤,無法建立資料夾。 我試了好久都沒成功,請問各位大大是否有解決的方法??? 謝謝 |
||
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
IncludeTrailingPathDelimiter() 這個函數放在 System.SysUtils.pas 它可以回傳包含 '\' 或 '/' 的字串路徑
例: Str := 'c:\test' Str := IncludeTrailingPathDelimiter(Str); // Str 會得到 ''c:\test\' TPath.DirectorySeparatorChar 等於 '\' 或 '/' 例: Str := 'c:\test' TPath.DirectorySeparatorChar; 日文環境我沒試過,但應該是可以通用的。 ===================引 用 pchw8598 文 章===================
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |