1

C:\MyProjectフォルダーにmyApp.exeという1つのexeファイルがあります。C:\MyProjectにもあるtracefile.logなどのログファイルにログを書き込みます。

次に、C:\MyProjectにあるlogfiletracefile.logにも書き込むSchedule1.exeというスケジュールタスクを作成する必要があります。

OK、Schedule1.exeを作成し、同じフォルダーC:\ MyProjectフォルダーに保存し、このexeを使用してスケジュールを作成しました。

問題:ログファイルの相対パスを「。\ tracefile.log」と指定すると、Schedule1.exeがログファイルのパスを選択できません。しかし、「C:\ MyProject」のようなフルパスを指定すると、ログファイルのパスが選択されて書き込まれます。

何が問題なのか提案してください。

4

1 に答える 1

7

相対パスは、プロセスの作業ディレクトリからの相対パスです。プロセスの作業ディレクトリは、プロセスの起動時に決定され、実行可能ファイルを含むディレクトリではない場合があります。さらに、作業ディレクトリはプロセスの存続期間中に変更される可能性があります。

これらのファイルへのフルパスを指定する必要があるように思われます。実行可能ファイルが存在するディレクトリを取得する必要があります。あれは

ExtractFilePath(ParamStr(0));

したがって、次のコードを使用してファイルに名前を付ける必要があります。

ExtractFilePath(ParamStr(0)) + 'tracefile.log'
于 2013-02-12T13:00:03.130 に答える