diff options
author | anekos | 2011-09-14 21:11:26 +0900 |
---|---|---|
committer | anekos | 2011-09-14 21:11:26 +0900 |
commit | fc90f75467424cafbdef99f69346dcc6fa29ad5d (patch) | |
tree | b5407bece89a1c6617b04548714306d2c0354adc | |
parent | 037d35a339783cafbe1cfeffee4b4900b0adecb5 (diff) | |
download | vimperator-plugins-fc90f75467424cafbdef99f69346dcc6fa29ad5d.tar.bz2 |
ファイル名を正しく結合する
-rw-r--r-- | pixiv.js | 24 |
1 files changed, 10 insertions, 14 deletions
@@ -69,16 +69,14 @@ commands.addUserCommand( let result=fp.show(); switch(result){ case Ci.nsIFilePicker.returnOK: - path=fp.file.path; - break; + return fp.file; default: case Ci.nsIFilePicker.returnCancel: - return ''; + return; } - return path; }; let saveDirectory=directoryPicker(); - if(saveDirectory.length<1) return; + if(!saveDirectory) return; let getDOMHtmlDocument=function(str){ let doc; @@ -127,27 +125,25 @@ commands.addUserCommand( let imgUrl; let truePixivImg=function(){ - let fileName=imgUrl.substr(imgUrl.lastIndexOf('/')); + let fileName=imgUrl.substr(imgUrl.lastIndexOf('/') + 1); if (-1!=fileName.indexOf('?')){ fileName=fileName.substr(0,fileName.indexOf('?')); } - let tmpPath=saveDirectory+fileName; + let tmpPath=saveDirectory.clone(); + tmpPath.append(fileName); let instream=xhrImg.responseText; - let aFile=Cc["@mozilla.org/file/local;1"] - .createInstance(Ci.nsILocalFile); - aFile.initWithPath(tmpPath); - if(true===aFile.exists()){ + if(true===tmpPath.exists()){ let value=window.prompt('すでに同じ名前のファイルがあります。デフォルトファイル名を変更してください。',fileName.substr(1)); if(null===value){ return false; } fileName='/'+value; - tmpPath=saveDirectory+fileName; - aFile.initWithPath(tmpPath); + tmpPath=saveDirectory.clone(); + tmpPath.append(fileName); } let outstream=Cc["@mozilla.org/network/safe-file-output-stream;1"] .createInstance(Ci.nsIFileOutputStream); - outstream.init(aFile,0x02|0x08|0x20,0664,0); + outstream.init(tmpPath,0x02|0x08|0x20,0664,0); outstream.write(instream,instream.length); if (outstream instanceof Ci.nsISafeOutputStream) { outstream.finish(); |