相対パスメモ

  • 特別な文字は :, /, \。特に / と \ は区切り文字。
  • 先頭が\のときはルートからの相対パス
  • 先頭が/のときはカレントディレクトリからの相対パス
  • 先頭の/チェックのあとはすべての/を\に置き換えて良い(ShellExecuteは/だと動作しない?)
  • 先頭が./となる場合はカレントディレクトリからの相対パス
  • 先頭が../となる場合はカレントディレクトリの1つ上からの相対パス
  • 区切り文字のあとに.を1つはさむ場合は、無視する。
  • 区切り文字のあとに.を2つはさむ場合は、1つ上の階層を無視する。
  • 上記二つは、 / が \ になっていればShellExecuteがやってくれそう。
  • 代わりにパスの最大長に注意。
  • ShellExecute関数の動作についてもう少し調べたほうが良い。

ShellExecuteは ../ 以外は自動で解釈してくれる。(\,/が混ざっていても動く、ただc:をcドライブのカレントディレクトリとは解釈しない)

上は勘違い。何もしなくても解釈してくれたぽい。作業ディレクトリの指定は要るかも