如何更改Firefox中的下载文件夹destenation? [英] How to change the download folder destenation in firefox?

查看:233
本文介绍了如何更改Firefox中的下载文件夹destenation?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个Firefox的扩展功能,可以从Facebook的当前页面下载图片。
我不知道是否有办法将默认下载目录更改为X,更优选的是要求用户输入一个。
Thanks $ / $>

I am developing a firefox extension that downloads pictures from the current page in facebook. I wonder if there is a way to change the default download directory to X. and more preferably to ask the user to input one. Thanks

推荐答案

//give your file details in this line
downloadFile(title, url, fileType);

// Don't change anything below if you don't know what it does

function getDownloadFile(defaultString, fileType) 
{
    var nsIFilePicker = Components.interfaces.nsIFilePicker;

    var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
    fp.init(window, "Save As", nsIFilePicker.modeSave);
    try {
        var urlExt = defaultString.substr(defaultString.lastIndexOf(".")+1, 3);
        if (urlExt!=fileType) defaultString += "." + fileType
    }catch(ex){}

    fp.defaultString = defaultString;

    fp.appendFilter(fileType, "*." + fileType);
    var rv = fp.show();
    if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
      var file = fp.file;
      var path = fp.file.path;
      return file;
    }
    return null;
}
function downloadFile(title, url, fileType) 
{
    var file = getDownloadFile(title, fileType);

    var persist = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1'].createInstance(Components.interfaces.nsIWebBrowserPersist);  
    var ios = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService);  
    var uri = ios.newURI(url, null, null); 

    var target = ios.newFileURI(file) 
    var xfer = Components.classes["@mozilla.org/transfer;1"]  
                           .createInstance(Components.interfaces.nsITransfer);  
    xfer.init(uri, target, "", null, null, null, persist);  
    persist.progressListener = xfer; 
    persist.saveURI(uri, null, null, null, null, file);

}

这篇关于如何更改Firefox中的下载文件夹destenation?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆