Re: [-Fx-] 有沒有好用的另存下載路徑管理

看板Browsers作者 (微閣)時間2年前 (2021/08/15 19:30), 編輯推噓6(6022)
留言28則, 9人參與, 2年前最新討論串2/2 (看更多)
※ 引述《gcobc12632 (Ted)》之銘言: : 在火狐按右鍵另存後 會自動開啟Windows內建的檔案管理員 : 然後你就可以選擇路徑 把該檔案下載到你選的路徑內 : 但如果檔案很多種 需要分門別類的話 : 每次右鍵就要慢慢點路徑 然後檔案管理員還要讀取該路徑內的檔案 很拖時間 : 有沒有像這種 我可以存取很多路徑 例如: : C:\Download : D:\Download\圖片 : D:\Download\影片 : D:\Download\其他檔案 : 然後我按右鍵另存的時候 可以直接選其中一個路徑 就能下載到該路徑了 : 不需要再經過緩慢的Windows內建檔案管理員 : 有這種類似的套件嗎? 請原諒我以回文的方式賺 P 幣。 [ 簡短的回答 ] 依照你所提的需求, 我會直接說:沒有。 這是因為以目前能使用的 API 來說, 在技術上無法達成。 [ 較長的解釋 (沒興趣可跳過) ] 基於安全考量, 與檔案系統有關的操作一直都非常受限, 就算是 Extension 也沒有太多特權。 在一般網頁環境中, JS 原則上只能用 <a download> 這種妖術來儲存檔案 (註 1); 而在 Extension 中, 也只多了 browser.download.downloads() 的選擇 (註 2)。 但不管是哪一種, 儲存時都只能「觸發開啟」檔案管理員, 讓使用者「手動」選取要存的路徑。 至於檔案管理員的預設開啟路徑、顯示內容, 都是由瀏覽器 (或作業系統) 全權控制, JS 完全沒有插手餘地, 因此也就無法達到你想要的功能。 (註 1) Chrome、Edge 與 Opera 多了 File System Access API 的選擇, 但存檔時的限制跟 <a> 一樣。 Firefox 與 Safari 則不支援此 API。 (註 2) Chrome 的 Extension 多了 1. chrome.fileSystemProvider 2. chrome.fileBrowserHandler 兩個選擇, 可能有特殊權限 (沒仔細研究), 但只能用於 Chrome OS 中。 [ 替代方案 ] 老實說, 有一個更簡單的作法可以達到類似效果。 你以 Junction 或 Symbolic Link 的形式, 在單一資料夾下連結到各類別的實體資料夾位置。 例如在預設的儲存資料夾 C:\Download 中, 建立下列連結: 圖片 --> D:\Dir1\圖片 影片 --> D:\Dir2\影片 文件 --> E:\Dir3\文件 ... 用起來應該會跟你想要的效果有 87% 像。 -- 如果有人發現有上架的 Extension 可以做到原原 Po 要的功能, 希望也能順便通知我說一聲, 我真的會想知道他們是怎麼做到的... https://i.imgur.com/pWfRply.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.77.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Browsers/M.1629027032.A.B3F.html

08/15 20:06, 2年前 , 1F
不如說特地回文解釋原理還真是幫大忙了 感謝
08/15 20:06, 1F

08/15 20:08, 2年前 , 2F
我可能會照上篇推文的方式 去安裝Windows用的管理器吧
08/15 20:08, 2F

08/15 20:15, 2年前 , 3F
其實會PO這篇文的原因 主要是因為之前短暫的跳到Cent
08/15 20:15, 3F

08/15 20:16, 2年前 , 4F
他就有內建此功能 覺得還不錯 就想順便問火狐有沒有
08/15 20:16, 4F

08/15 20:21, 2年前 , 5F
08/15 20:21, 5F

08/15 20:36, 2年前 , 6F
難怪那麼多人說跳 Cent,看起來有些功能的確不錯
08/15 20:36, 6F

08/15 20:52, 2年前 , 7F
但Cent更新很慢 而且實在是不習慣Chrome系的操作 就又
08/15 20:52, 7F

08/15 20:52, 2年前 , 8F
跳回火狐了
08/15 20:52, 8F

08/15 21:32, 2年前 , 9F
如果透過 browser.downloads.download() 其實是可以不用
08/15 21:32, 9F

08/15 21:32, 2年前 , 10F
觸發檔案管理員的,唯一的限制是只能在使用者指定的下載
08/15 21:32, 10F

08/15 21:32, 2年前 , 11F
資料夾下(但可以是子資料夾),搭配這篇說的
08/15 21:32, 11F

08/15 21:32, 2年前 , 12F
symbolic link 應該是可以做到原原 PO 想做的事。
08/15 21:32, 12F

08/15 21:51, 2年前 , 13F
用native client搭mimetype可能嗎?
08/15 21:51, 13F

08/15 22:22, 2年前 , 14F
嗯那部分我寫錯 (就不修了)。如果使用者配合建 Link,
08/15 22:22, 14F

08/15 22:22, 2年前 , 15F
加上 download() 可以算是符合需求
08/15 22:22, 15F

08/15 22:24, 2年前 , 16F
NC 應該也做得到,雖然我自己是沒把它歸在原原 PO 說的
08/15 22:24, 16F

08/15 22:25, 2年前 , 17F
套件裡
08/15 22:25, 17F

08/15 23:02, 2年前 , 18F
上面看來單純是記住以前存過得路徑,不是去調用filesystem
08/15 23:02, 18F

08/15 23:36, 2年前 , 19F
cent自從不能用Google帳號 應該就快死了..?
08/15 23:36, 19F

08/16 00:21, 2年前 , 20F
感謝詳細解說,幫cent QQ
08/16 00:21, 20F

08/16 08:45, 2年前 , 21F
要說也是「曾經有」 但因為安全性被拿掉了...
08/16 08:45, 21F

08/16 09:38, 2年前 , 22F

08/16 09:39, 2年前 , 23F
像這樣的符合嗎?
08/16 09:39, 23F

08/16 11:40, 2年前 , 24F
樓上這個好像可行 我再試試看
08/16 11:40, 24F

08/16 12:48, 2年前 , 25F
DownThemAll只能選擇下載路徑的子資料夾 不過搭配上面
08/16 12:48, 25F

08/16 12:49, 2年前 , 26F
symbolic link 就可以達到類似的效果 雖然不是套件 但
08/16 12:49, 26F

08/16 12:49, 2年前 , 27F
如果以套件無法實現的話 這也算是個次要解 感謝
08/16 12:49, 27F

08/16 23:07, 2年前 , 28F
想到..C:\fakepath\
08/16 23:07, 28F
文章代碼(AID): #1X6FhOi_ (Browsers)
文章代碼(AID): #1X6FhOi_ (Browsers)