file:///形式のURLをローカルパスに変換する
file:///C:/test/test.htmなど、ローカルファイルをブラウザで閲覧するときなどに使われる形式から、Windowsのパス形式に変換する方法を紹介しています。
サンプルコード
// URL(file:///形式)から通常のファイル名に変換する
function url2filename(url)
{
if(0 == url.indexOf("file:///"))
{
url = unescape(url.substr(8).split('/').join('\\'));
}
else
{
return null;
}
return url;
}
概要
このfunctionはfile:///C:/test/test.htmなどのURL形式のパスをC:\test\test.htm形式に変換します。
プログラム構造は単純で
1.文字列がfile:///で始まっていれば引数が正常と見なし最初の8文字を消去する。
2./をすべて\に置換する。
3.URLエンコードを解除する。
うまく変換できないパターンもあるかもしれませんが、こんな感じでやってます。