搜尋 Mozilla 技術支援網站

防止技術支援詐騙。我們絕對不會要求您撥打電話或發送簡訊,或是提供個人資訊。請用「回報濫用」功能回報可疑的行為。

了解更多

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).