フォルダ名にスペース(空白)が入っている場合


ばなな  2005-09-08 10:47:43  No: 92124  IP: [192.*.*.*]

VB6.0(英語版)、WindowsXP(英語版)で開発を行っています。
ファイルの処理についての質問です。
プログラム中でDOSを実行してファイルをコピーしています。

Shell Environ("COMSPEC") & " /C COPY " & File1 & " " & File2

その際に、フォルダ名にスペースが入っている、又はファイル名にスペースが入る場合にうまくコピーされません。
(スペースが無い場合はコピーされます)
なぜでしょうか?
そのような仕様なのですか?

対処法としてはスペースをなくすしかないのでしょうか?

どなたかご教授ください!

編集 削除
いな  2005-09-08 10:54:45  No: 92125  IP: [192.*.*.*]

>対処法としてはスペースをなくすしかないのでしょうか?

ごくごく一般的な対処法としてはパス名を"で囲みます。

編集 削除
ガッ  2005-09-08 10:55:22  No: 92126  IP: [192.*.*.*]

たとえばコマンドプロントで "C:\Program Files\hoge\hoge.exe" に、
"これは引数です ABC" という引数を渡すときは、
・"C:\Program Files\hoge\hoge.exe" "これは引数です ABC"
とします。
なので、VB側では
Shell Environ("COMSPEC") & " /C COPY """ & File1 & """ """ & File2 & """"
とします。

編集 削除