サーバーからバイト配列をフェッチしていますが、ファイルの正確な拡張子がわかりません。そのファイルは .pdf / mp4 / docx / zip である可能性があるため、sdcard に保存した後に正確な拡張子を知るにはどうすればよいでしょうか。
何か案が?
サーバーからバイト配列をフェッチしていますが、ファイルの正確な拡張子がわかりません。そのファイルは .pdf / mp4 / docx / zip である可能性があるため、sdcard に保存した後に正確な拡張子を知るにはどうすればよいでしょうか。
何か案が?
カスタム プロトコルの場合は、1 バイト (またはそれ以上) のデータ型をクライアント側に渡す必要があります。次に、データを取得し、最初のバイトに従ってクライアント側で拡張子を追加します。http のようなプロトコルの場合は、回答にヘッダーを追加できます。ただし、クライアント側だけでなくサーバー側でも同様に行う必要があります。
ファイル拡張子をすぐに判断する適切な方法はありません。
ただし、ファイル拡張子が mp3 の場合に特定のタスクを実行するなど、特定のファイル タイプに条件を課すことができます。そのために使用できますFilenameFilter
。
詳細については、how-to-find-all-files-with-certain-extension-on-androidを確認してください。
ファイルの内容からファイル拡張子を確実に判断する方法はありません。手紙しかないのに、封筒に何が書かれているかを調べようとするようなものです。
を推測できますが、それは難しい作業です (たとえば、adocx
もzip
ファイルです)。これには専用のソフトウェアがあり (多くのオペレーティング システムにはfile
ツールが含まれています)、使用できるサードパーティ製のライブラリが見つかるかもしれませんが、それを行ったとしても、まだ推測にすぎません。
サーバーがコンテンツに加えて元のファイル名を通知する方法を見つけることに集中したいと思います。