搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解

Where does Firefox store SQLITE download history

  • 3 个回答
  • 1 人有此问题
  • 1 次查看
  • 最后回复者为 cor-el

more options

I normally choose my download location and if they're zip I'll delete them after extract.

The problem is currently I can't find any way to get where did I put my downloaded files if it's not there.

BUT!!! In order to know the files aren't there, Firefox has to know where did I put them.

I searched the home folder but nothing named `download` is in the folder.

I asked a question for what should I do https://support.mozilla.org/en-US/que.../1312757 but doesn't get anything remotely useful.

I normally choose my download location and if they're zip I'll delete them after extract. The problem is currently I can't find any way to get where did I put my downloaded files if it's not there. BUT!!! In order to know the files aren't there, '''Firefox has to know where did I put them'''. I searched the home folder but nothing named `download` is in the folder. I asked a question for what should I do [https://support.mozilla.org/en-US/questions/1312757] but doesn't get anything remotely useful.

由cor-el于修改

被采纳的解决方案

That data is stored as a "downloads/destinationFileURI" annotation in places.sqlite. I don't know of a way to access this data directly in the user interface.

You can run this code in the Browser Console to retrieve the annotation map and check the "downloads/destinationFileURI" array.

const DESTINATIONFILEURI_ANNO = "downloads/destinationFileURI";
const METADATA_ANNO = "downloads/metaData";
let pageAnnos = await PlacesUtils.history.fetchAnnotatedPages([METADATA_ANNO,DESTINATIONFILEURI_ANNO,]);

定位到答案原位置 👍 1

所有回复 (3)

more options

选择的解决方案

That data is stored as a "downloads/destinationFileURI" annotation in places.sqlite. I don't know of a way to access this data directly in the user interface.

You can run this code in the Browser Console to retrieve the annotation map and check the "downloads/destinationFileURI" array.

const DESTINATIONFILEURI_ANNO = "downloads/destinationFileURI";
const METADATA_ANNO = "downloads/metaData";
let pageAnnos = await PlacesUtils.history.fetchAnnotatedPages([METADATA_ANNO,DESTINATIONFILEURI_ANNO,]);

more options

cor-el said

That data is stored as a "downloads/destinationFileURI" annotation in places.sqlite. I don't know of a way to access this data directly in the user interface. You can run this code in the Browser Console to retrieve the annotation map and check the "downloads/destinationFileURI" array.
const DESTINATIONFILEURI_ANNO = "downloads/destinationFileURI";
const METADATA_ANNO = "downloads/metaData";
let pageAnnos = await PlacesUtils.history.fetchAnnotatedPages([METADATA_ANNO,DESTINATIONFILEURI_ANNO,]);

Thanks for the reply. I didn't get the e-mail for some mysterious reasons but just ran across this problem again and remembered I have already asked this.

Anyway, the file is indeed in the `places.sqlite` but the table name is wrong.

It's actually in the `moz_annos`.

I don't write JS though, but I thought you can't access the storage using the frontend JS?

由palm22180于修改

more options

You can run privileged JavaScript code via the Browser Console and this allows to access such data. To enable the command line in the Console:


I didn't mention a specific table in places.sqlite in my above reply. Yes, moz_annos stores the downloads as a special 'download' annotation defined in moz_anno_attributes (downloads/metaData, downloads/destinationFileURI, downloads/destinationFileName). The entries in moz_annos are linked to moz_places that stores the actual history entry (moz_places.id = moz_annos.place_id).