2009-11-18 31 views
1

加載文件時出現問題,因爲我將相對路徑傳遞給了函數FileExists(Filename: String),並且它返回false,也就是說,它找不到文件我傳遞的目錄。Delphi中服務應用程序給定文件的相對路徑

我有一個在D:\Programming\Delphi\Projects\SendMail目錄中名爲Template.html文件,用Delphi編寫的,其.EXE是在D:\Programming\Delphi\Automation目錄服務。我正在傳遞相對路徑:.\..\Projects\SendMail\Template.htmlFileExists(),但它返回的是該文件不存在。

我認爲這與服務的相對路徑和應用程序的相對路徑不同有關。任何人都可以幫助我嗎?

+0

我有一個見解,這裏的人不會像用西班牙語問的問題。 – 2009-11-18 15:01:06

+0

eningléspor favor。 – CodingWithSpike 2009-11-18 15:03:26

+0

在Ingles,por。 說真的,英語可能會幫助你的問題得到回答:) ps:我想你是從錯誤的目錄啓動它。嘗試指定完整的路徑,如\ Program \ Delphi \ ... – lorenzog 2009-11-18 15:04:09

回答

6

正如lorenzog所說,嘗試指定完整路徑。

您也可以嘗試將currentdir設置爲您的喜好。

//sets currentdir to your application.exe dir 
SetCurrentDir(ExtractFileDir(ParamStr(0))); 
2

您認爲服務的當前目錄是存儲可執行文件的目錄。調用GetCurrentDir以查找當前目錄。

+0

好吧,我剛剛找到目錄:C:\ Windows \ system32 \。非常感謝你。 – DelphiProgrammer 2009-11-18 20:23:30

2

我的經驗是,無論實際的可執行文件位於何處,服務都以%SystemRoot%\System32的工作文件夾開始。

,我繞過這個限制了該方法是寫在安裝的服務過程中的註冊表項(例如HKLM\SOFTWARE\MyCompany\MyApp\INSTALL_PATH)指向什麼,我會像工作文件夾是。然後,當服務啓動時,它會從註冊表中抓取數據,並在創建文件路徑時使用該值作爲基礎。

+0

Gooooooooooooooood,非常好!朋友,謝謝。就是這樣......現在起作用了。 – DelphiProgrammer 2009-11-18 20:22:22

相關問題