◆ファイル/URL相対パス

情報


概要

相対パスを出力します。

相対パス指定のお約束

・同じ階層にあるものは、そのままファイル名か「./ファイル名」
・下の階層にあるものは、「./フォルダ名/ファイル名」
・上の階層にあるものは、「../ファイル名」
・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バイト抜き出す≠「../」ならば、結果=「./」&結果。
 結果で戻る。

名前:
コメント:


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年05月31日 17:29
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。