2011-03-10 19 views
1

ダウンロードマネージャサービスを使用してダウンロードを続行する前に、WebOSにファイルが存在するかどうかをテストすることはできますか?WebOS:ファイルが存在するかどうかをテストする方法は?

デフォルトでは、上書きを避けるためにメソッド "ダウンロード"にアンダースコア+が追加されますが、ローカル/メディア/内部/ファイルフォルダにファイルが既に存在する場合、そのファイルをダウンロードしないようにしています。 ..

私はウェブ全体を見渡しましたが、役に立たなかった... 手がかりはありますか? ありがとう!

+0

あなたが望むパフォーマンスを得ることができないため、お尋ねします。しかし、OSは、ローカルの名前変更にかかわらず、同じURLへのアクセス時にあなたにローカルファイルを与えることを本当に扱うべきです。私の経験では、キャッシングやそれに類するものを自分でやってはいけませんが、パフォーマンスが悪い他の理由があるかどうかを確認することをお勧めします。 URLが同じでない場合は、別の問題です。 –

+0

あなたの答えがわかりません。私は何をしようとしているのかをより良く説明しようとする。ユーザーはストリーミングmp3ファイルを聞くことができ、好きなら「ダウンロード」ボタンをクリックすることができる。問題は、同じファイル名のファイルがすでにターゲットディレクトリに存在する場合、ダウンロードは帯域幅を節約し、以前ダウンロードしたファイルをダウンロードできないようにすることです。 –

答えて

2

おそらく最も簡単な方法は、Ajaxリクエストを使用してファイルを読み取ることです。 http://forums.precentral.net/web-os-development/196320-how-parse-text-file-pres-file-system-into-app.html

ファイルを読み取ることができない場合、明らかにまだダウンロードされていません。


編集ウェブOS 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

私は試しましたそれは何らかの理由で常に真実を返します...? –

+0

(文書化されていない "palmGetResource"呼び出しはテキストファイルのみです) –

+0

奇妙です。私はAjax.requestが動作することを期待していました。私は約80%の確信を持っています。私の電話がソフトウェアアップデートを完了するとすぐにチェックします... –

関連する問題