コマンドラインからファイルパスを取得するには?

解決


加藤  2002-11-17 20:19:38  No: 105443

初めまして。
コマンドラインからファイルパスを取得しようと、ヘルプに載っているGetCommandLine関数をそのまま使用していますが、この方法だとパスにスペースのあるファイルのパスはスペースで分かれてしまいます。
パスにスペースのあるファイルのパスも取得できるようにするにはどうすればよいのでしょうか?

ちなみにVB6・WindowsMEです。


YuO  2002-11-17 20:55:32  No: 105444

わざわざAPI使わなくてもCommand関数というのがあるのに……。

それはともかく,パスにスペースを含むファイルを指定する場合,
パスを二重引用符で囲むのがWindowsの流儀です。
つまり,C:\Program Files\foo\bar.datをtest.exeに渡すと,
test "C:\Program Files\foo\bar.dat"
というコマンドラインになります。

基本的に二重引用符で囲まずにパラメータを渡してきた場合,
間にある空白がパラメータを分離するものか,二重引用符で囲み忘れたのかを区別するすべはありません。
なので,普通はパラメータを分離するものとして処理します。


加藤  2002-11-18 05:12:55  No: 105445

解決しました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加