2011-07-13 15 views
0

私は、アプリケーション全体で変数として使用したいassetsディレクトリのパスを欲しいだけです。Androidの「assets」ディレクトリの絶対パスを取得するにはどうすればよいですか?

AssetManagerを使用して「assets」ディレクトリ内のファイルを参照できますが、今のところファイルを参照したくないことがわかりました。ちょうどassetsディレクトリのパスが必要です。

誰でも私にこれを手伝ってもらえますか?

+0

コンテンツをUrisで作成していますか?ユースケースは具体的に何ですか? –

+0

@David:アンドロイドは 'raw'ディレクトリ内のファイルに対してファイルサイズ制限があるので、ファイルを' assets'ディレクトリに置いて、実行時に必要に応じてファイルを取得します。動的ではありますが、 'assets'ディレクトリのパスは同じままです...' assets'ディレクトリのパスを取得したいとします。 –

+0

わかりました。あなたが必要としているのであれば、ContentProvidersで使用できるUriの形であなたに道を教えてもらえますか?明らかにこれはContentProviderを使用してアセットをロードする場合にのみ機能します。 –

答えて

4

私はちょうど私が私のアプリ全体で変数として使用したいの資産・ディレクトリのパスをしたいです。

「アセットディレクトリのパス」はデバイスにありません。

AssetManagerを使用して「assets」ディレクトリ内のファイルを参照できますが、私は今のところファイルを参照したくありません。アセットディレクトリのパスが必要です。

「アセットディレクトリのパス」はデバイスにありません。

誰でも私にこれを手伝ってもらえますか?

「アセットディレクトリのパス」がデバイスに存在しないため、いいえ。必要に応じてAssetManagerを使用してアセットにInputStreamを取得してください。必要

として

Androidは、生のディレクトリ内のファイルのファイルサイズ制限があるので、私は資産ディレクトリに自分のファイルを配置され、実行時に、私はそれらを取得することになる「制限」資産、AFAIKについても同じです。 「制限」を回避する通常の方法は、ファイルにAndroidのビルドツールが圧縮しようとしない拡張子を与えることです(.mp3はIIRCで動作します)。

+0

私はあなたの本の素晴らしいファンでした。私は実際にAndroidプロジェクトで使用する予定のjarファイルを開発しています。私は、ファイルサイズの制限は、Androidで圧縮されていないファイル(.jpg、.mp3など)の拡張子を使用することで打ち負かすことができることを認識しています...私はユーザーが特定のファイルを配置したい、アセットディレクトリにあり、後で私のjarファイルで公開されているAPI呼び出しで使用できます。私のアプローチは正しいですか?いいえ、いい選択肢かもしれない代替品があると思いますか? –

+0

"アセットディレクトリに特定のファイルを置いて、後でjarファイルに公開されたAPI呼び出しで使用できるようなものが必要です。私のアプローチは正しいのですか?" - Context'を使って 'AssetManager'を得ることができます。このようなデザインについては、再利用者に人為的な制限を課す恐れがあります(例えば、特定のファイル名やディレクトリを 'assets /'に指定することなど)。 "私はあなたの本の素晴らしいファンでした" - ありがとう! – CommonsWare

+0

@CommansWare:あなたの答えを受け入れる..最後に、ちょうどあなたからの意見がほしいと思う:あなたが私の 'jar'ファイルのユーザにファイルを特定の場所に置くことを可能にする可能性のある方法を見ていますか?私の 'jar'ファイルによって提供される機能/機能を使用するためにアプリケーションコードで後で参照されるでしょうか?前もって感謝します! –

0

を使用してみてくださいAssetFileDescriptor

+0

それを使用する方法やサンプルコードについて関連リンクを教えてください。事前に感謝しています –

+0

私は 'AssetFileDescriptor'のドキュメントを見ましたが、それは決して' assets'ディレクトリのパスを提供していないと思います... –

関連する問題