情報
概要
相対パスを出力します。
相対パス指定のお約束
・同じ階層にあるものは、そのままファイル名か「./ファイル名」
・下の階層にあるものは、「./フォルダ名/ファイル名」
・上の階層にあるものは、「../ファイル名」
・2階層上にあるものは、「../../ファイル名」
・1階層上にあるフォルダの中のファイルは、「../フォルダ名/ファイル名」
解説
●ファイル相対パス変換
●ファイル相対パス展開
●URL相対パス変換
●URL相対パス展開
「変換」系
引数
基本パス:指定する側
絶対パス:絶対的に指定される側
返り値
相対パス
「展開」系
引数
基本パス:指定する側
相対パス:相対的に指定される側
返り値
絶対パス
サンプルプログラム
//ファイル相対パス変換・展開
基本パス=「C:\Documents and Settings\Owner\デスクトップ\AAA.html」。
#基本パス=「C:\Documents and Settings\Owner\デスクトップ\」。#どちらでもOK!
絶対パス=「C:\Documents and Settings\Owner\My Documents\BBB.html」。
相対パス=絶対パスを基本パスでファイル相対パス変換して言う。#..\My Documents\BBB.html
相対パスを基本パスでファイル相対パス展開して言う。#C:\Documents and Settings\Owner\My Documents\BBB.html
//URL相対パス変換・展開
基本パス=「http://www.yahoo.co.jp/test/aiueo/」。
#基本パス=「http://www.yahoo.co.jp/test/aiueo/index.html」。#どちらでもOK!
絶対パス=「http://www.yahoo.co.jp/neko.gif」。
相対パス=絶対パスを基本パスでURL相対パス変換して言う。#../../neko.gif
相対パスを基本パスでURL相対パス展開して言う。#http://www.yahoo.co.jp/neko.gif
//本体
●ファイル相対パス展開(相対パスを基本パスで)
基本パス=基本パスからパス抽出。
相対パスを基本パスで相対パス展開。それで戻る。
●ファイル相対パス変換(基本パスから絶対パスまでの|絶対パスを基本パスで)
結果とは文字列。仮基本パスとは配列。仮絶対パスとは配列。カウンタとは整数。
基本パス=基本パスからパス抽出。基本パス=基本パスの終端パス追加。基本パス=基本パス&「syuusei」。
仮基本パスは基本パスを『\』で区切る。仮絶対パスは絶対パスを『\』で区切る。
1のループ
もし回数が(仮基本パスの配列要素数)ならば、抜ける
もし回数が(仮絶対パスの配列要素数)ならば、抜ける
もし仮基本パス[回数-1]が仮絶対パス[回数-1]でなければ、抜ける
カウンタ=カウンタ+1。
((仮基本パスの配列要素数)-1-カウンタ)回
結果は(『..\』&結果)
((仮絶対パスの配列要素数)-カウンタ)回
結果は結果&仮絶対パス[カウンタ+回数-1]&『\』
結果は結果&改行。結果は結果の(『\』&改行)を空に置換。結果は結果の改行を空に置換。
もし、結果の1から3バイト抜き出す≠「..\」ならば、結果=「.\」&結果。
結果で戻る。
●URL相対パス展開(相対パスを基本パスで)
基本パス=基本パスからURL基本パス抽出。
相対パスを基本パスでURL展開。それで戻る。
●URL相対パス変換(基本パスから絶対パスまでの|絶対パスを基本パスで)
結果とは文字列。仮基本パスとは配列。仮絶対パスとは配列。カウンタとは整数。
基本パス=基本パスからURL基本パス抽出。もし、基本パスから1バイト右部分≠「/」ならば、基本パス=基本パス&「/」。
基本パス=基本パス&「syuusei」。
仮基本パスは基本パスを『/』で区切る。仮絶対パスは絶対パスを『/』で区切る。
1のループ
もし回数が(仮基本パスの配列要素数)ならば、抜ける
もし回数が(仮絶対パスの配列要素数)ならば、抜ける
もし仮基本パス[回数-1]が仮絶対パス[回数-1]でなければ、抜ける
カウンタ=カウンタ+1。
((仮基本パスの配列要素数)-1-カウンタ)回
結果は(『../』&結果)
((仮絶対パスの配列要素数)-カウンタ)回
結果は結果&仮絶対パス[カウンタ+回数-1]&『/』
結果は結果&改行。結果は結果の(『/』&改行)を空に置換。結果は結果の改行を空に置換。
もし、結果の1から3バイト抜き出す≠「../」ならば、結果=「./」&結果。
結果で戻る。
最終更新:2009年05月31日 17:29