javascriptはファイルの拡張子の構想と実現を得ます.

1918 ワード

絶対パスがあるファイル名については、例えばD:\Program Files\Notepad+\Notepad+++と.exe
まず、転送反傾斜棒に問題がないように、正規表現を使って、\または\\を菗に置き換えることができます.
D:芫Program Files葃Notepad++芫Notepad++.exe
その後、「(((登録商標)」を区切り記号として、文字列を配列に分解して、次のような配列が得られます.
D:  Program Files  Notepad++  Notepad++.exe
配列の最後のファイル名を取得します.すなわち、拡張子付きのファイル名です.Notepad+.exe
「.」を区切り記号として、このサフィックス付きのファイル名を行列に分解して、次のような配列が得られます.
Notepad++  exe
そして配列の最後の部分を取ると、ファイルの拡張子名exeが得られます.
コードは以下の通りです.
 
  
//by MoreWindows (//www.jb51.net/qq) 
function GetExtensionFileName(pathfilename)
{
    var reg = /(\\+)/g;
    var pfn = pathfilename.replace(reg, "#");
    var arrpfn = pfn.split("#");
    var fn = arrpfn[arrpfn.length - 1];
    var arrfn = fn.split(".");
    return arrfn[arrfn.length - 1];
}
//by MoreWindows (//www.jb51.net/qq)
function GetExtensionFileName(pathfilename)
{
 var reg = /(\\+)/g;
 var pfn = pathfilename.replace(reg, "#");
 var arrpfn = pfn.split("#");
 var fn = arrpfn[arrpfn.length - 1];
 var arrfn = fn.split(".");
 return arrfn[arrfn.length - 1];
}
テストコード:
 
  
function Test()
{
    var filePath="D:\\Program Files\\Notepad++\\Notepad++.exe";
    alert(GetExtensionFileName(filePath));
}

function Test()
{
 var filePath="D:\\Program Files\\Notepad++\\Notepad++.exe";
 alert(GetExtensionFileName(filePath));
}

Testボタンをクリックすると、内容がexeのダイアログが表示され、GetExtension FileNameが絶対パスのファイル名を正確に解析し、拡張子名を得ることができる.
この方法はWindowsの下でしか使えないと思いますが、Linuxで実行したらどうなりますか?