1. 相対パスと絶対パスの違いと注意点
絶対パスとは
「C:\Users\ユーザー名\Documents\sample.xlsx」のように、ドライブのルートから完全に指定されたパスです。基本的にどの環境でも同じファイルにアクセスできます。
相対パスとは
「.\sample.xlsx」や「..\data\file.txt」のように、現在のフロー実行場所を基準に指定する方法です。フローの配置場所によって意味が変わります。
注意点:
- PADで相対パスを使う場合は、フロー実行時の「作業ディレクトリ(working directory)」がどこかを意識する必要があります
- 相対パスは、誤って使うと「ファイルが見つからない」というエラーの原因になります
推奨:
- 初心者はなるべく絶対パスを使う
- 相対パスを使うときは、動作確認を必ず行う
2. ユーザーディレクトリ(%USERPROFILE%)の違いと落とし穴
PADは、管理者として実行したときと通常のユーザーとして実行したときで、「C:\Users\●●」のユーザー名が異なる場合があります。
例:
- 通常実行 → C:\Users\yamada\Documents\
- 管理者実行 → C:\Users\Administrator\Documents\
問題:
フローを「管理者として実行」すると、ユーザーディレクトリが変わるため、同じファイルパスでもファイルが見つからないことがあります。
対策:
- 「%USERPROFILE%\Documents」などの環境変数を使って、ユーザーに依存しないパス指定を行う
- 「環境変数の取得」アクションを使い、動的にパスを作成する
3. バックスラッシュのエスケープに関する注意
PADでは、パスの区切りとして「\(バックスラッシュ)」を使いますが、文字列の処理によってはこの記号が誤って解釈されることがあります。
よくある誤り:
C:\Users\yamada\Documents\test.txt
上記を文字列として使った場合、「\t」がタブ、「\n」が改行と解釈されるケースがあります。
対処法:
- 「\」を2つ重ねて「\」にすることでエスケープ処理を回避
C:\\Users\\yamada\\Documents\\test.txt
- または、「変数に保存されたパス」を使って、直接編集せずに処理するのが安全
4. パスが正しくても見つからないときの確認ポイント
- パスの最後に余分なスペースや改行が含まれていないか確認
- ファイルやフォルダ名に全角文字や特殊文字(!@#など)が含まれていないかチェック
- OneDriveの同期中ファイルなど、実体がローカルに存在しない可能性もあるため、右クリック →「常に保持する」でローカルに確保する
よくある質問(FAQ)
Q1. 正しいはずのパスでエラーになります
→ スペルミスや、環境によってユーザー名が異なっていることがあります。エクスプローラーでファイルを右クリックし、「パスのコピー」で取得したものを使用してください。
Q2. 相対パスを使いたいのですが、どこが基準になるのか分かりません
→ PADでは、フローが実行される場所(作業ディレクトリ)が基準になります。変数「%CurrentDirectory%」を使うと現在のパスを確認できます。
Q3. 実行時に「ファイルがありません」と出るのに、手動で探すと存在します
→ 管理者実行と通常実行でユーザーが異なる可能性があります。ファイルの場所を共通の場所(C:\Dataなど)に置くことで回避できます。
