「.file_5」拡張子をアプリケーションに関連付け、Delphi で ParamStr(1) 関数を使用して、以下のコードを使用してエクスプローラーでファイルをダブルクリックしたときに、ファイルのパスとファイル名を含むメッセージ ボックスを表示しました。
procedure TForm1.FormCreate(Sender: TObject);
var
TheFile : string;
begin
TheFile := ParamStr(1); //filename for the file that was loaded
ShowMessage(TheFile);
end;
これは機能しますが、ファイルを元の場所とは別の場所に移動すると、表示されるメッセージが正しくありません。
例: (test.file_5 を使用)
ファイルの元の場所は C:\ ドライブで、ダブルクリックするとアプリケーションが起動し、次のようなメッセージ ボックスが表示されます。
C:\test.file_5
正解です。たとえば、同じファイルをプログラム ファイル フォルダーなどのスペースを含むディレクトリに移動すると、表示される Messagbox は表示されません。
C:\Program Files\test.file_5
私が期待するように、むしろ
C:\PROGRA~1.FILE_
これは明らかに私が求めている情報ではないので、私の質問は、ParamStr() 関数を使用して、スペースを含むディレクトリを考慮する方法、またはスペースを含むディレクトリで動作するより良い関数を使用することです。彼ら。