| |||
ファイルをパス指定してもうまく行かない
| |||
|
エクスプローラのアドレスバーに入れると確実に存在するし動作もするはずなのに、 HSPでそのパスを指定しても正常にはいかない・見つからないとエラーになる こういったことでお困りではありませんか? ファイルパスに限らず、'\'を使ったテキストが正常に行かないと言う方は、 HSPと言うよりもプログラム界のお決まりとも言えるエスケープシーケンスをまずはご理解ください。 テキスト上の'\'は特別な意味で用いられており、 '\'を文字列の'\'として使いたい場合は、スクリプト上で'\\'と書く必要があります。 ただ、一つ勘違いしてもらいたくないことがあるのでその件についてはコチラを参照願います。 で、ファイルパスに半角スペースを含んでいる場合は注意が必要です。 文字列内に、そのファイルパスが1つだけ入っている場合は正常に動作しますが、 例えば、実行ファイルで特定のデータファイルを開く為にコマンドラインとしてファイルパスが入る時、 実行ファイル・データファイルパスのいずれかに半角スペースを含んでいると 自分ではわかっていても、HSPはどこまでが1つのファイルパスなのか認識できません。 そういう場合は、明示的にわかるよう1つ分のパスをダブルクォーテーションで囲むようにしてください。 「program files」フォルダや「Documents and Settings」フォルダ等には気をつけましょう。 尚、ダブルクォーテーションで囲む場合のルールとして、いずれか任意のパスだけに使用するのではなく、 パスが2つあるなら2つとも、3つなら3つ全て囲むようにしなければなりません。 「C:\\abc\\de.fgh \"D:\\ijk\\lm no\\pq.rst\" E:\\uvw.xyz」という指定ではダメということです。 「\"C:\\abc\\de.fgh\" \"D:\\ijk\\lm no\\pq.rst\" \"E:\\uvw.xyz\"」と全て括りましょう。 ドラッグアンドドロップを許可していて複数ファイルがドロップされた場合も同様に、 ダブルクォーテーションで囲まれた形で変数に代入されます。覚えておきましょう。 |