2011-03-10 97 views
1

在使用下載管理器服務繼續下載之前,是否可以測試WebOS中是否存在文件?WebOS:如何測試一個文件是否存在?

默認情況下,方法「下載」將添加一個下劃線+數字,以避免覆蓋,但我想要做的是避免下載文件,如果它已經存在本地/媒體/內部/文件文件夾。 ..

我看了整個網絡,但無濟於事...... 任何線索? 謝謝!

+0

我想你問,因爲你沒有得到你想要的表現。但操作系統確實應該在訪問相同的URL時處理本地文件,而不管本地重命名。只是想說,根據我的經驗,最好不要自己做緩存或類似的事情,但看看是否有其他原因導致性能不佳。如果URL不一樣,那當然是另一回事了。 – 2011-03-11 07:23:25

+0

我不知道我明白你的答案。讓我試着更好地解釋我想要做的事情:用戶可以聽流媒體mp3文件,如果他喜歡它,他可以點擊「下載」按鈕。事情是,我想確保如果目標目錄中已經存在具有相同文件名的文件,則下載不會發生以節省帶寬並阻止用戶下載之前已經下載的文件... – 2011-03-11 18:05:25

回答

2

可能最直接的方法是使用Ajax請求來嘗試讀取文件。 http://forums.precentral.net/web-os-development/196320-how-parse-text-file-pres-file-system-into-app.html

如果你不能讀取文件,它顯然還沒有被下載。


編輯補充從webOS的以下1.4版本說明:

對於Ajax.Request的,如果被請求的文件不存在,請求不再得到一個「404」,這是被認爲是失敗,但是被認爲是成功的「0」。您將需要修改代碼,以便爲不存在的文件查找transport.status爲0,或爲具有此功能的文件查找200。有關更多信息,請參閱the Mozilla documentation。例如:

new Ajax.Request('/media/internal/my.file', { 
    method: 'get', 
    onSuccess: function(transport) { 
     //This is new for 1.4, we have to check the status of 
     //the transport object to see if the file exists or not. 
     if (transport.status == 200) 
      Mojo.Log.info('200 = http ok, file exists') 
     else if (transport.status == 0) 
      Mojo.Log.info('0 = response was empty, file does not exist') 
    }, 
    onFailure: function(transport) { 
     Mojo.Log.info('In 1.3.5 if the file didn’t exist the request would return here') 
    } 
}); 
+0

我試過了但由於某種原因,它總是返回true ...?! – 2011-03-11 17:58:16

+0

(以及無證的「palmGetResource」調用僅適用於文本文件) – 2011-03-11 18:11:33

+0

奇怪。我希望Ajax.request可以工作。我大概有80%確定我看到過之前完成過。一旦我的手機完成軟件更新,將立即檢查... – 2011-03-14 18:37:15

相關問題