2012-03-16 12 views
0

ファイル名とパスでファイルにアクセスする方法はありますか?Androidでのファイルへのアクセス

通常のJavaプロジェクトからAndroidにいくつかのコードを移動しようとしていますが、ここでは.wavファイルが\ src(悪い習慣)のサブディレクトリに保存されています。 Androidは同じ相対ファイルパスを使ってこれらにアクセスできません。

Androidファイルシステムにこれらのファイルのファイルパスがありますか、それともできませんか?

私はAssetsフォルダについていくつかのことを読んだので、これを使用してアプリケーションの場所にファイルをコピーすることができるということに気付いていますが、大きな問題ではない。

ご協力いただきありがとうございます。

+2

が、私はよく分からない/生フォルダRESに入れて...それは、資産フォルダ – Shrey

+0

なければなりませんこれを見てください - それはあなたが必要と思われる... http://stackoverflow.com/questions/4210239/how-to-use-relative-path-instead-of-absolute-path – Archer

+0

私はしていませんそれがコンパイル可能であっても動作すると思う。アセットは、フォルダ構造の生ファイルを保持できる唯一の場所です。 (もう一つの場所はRes \ rawでフォルダ構造はありません) – Calvin

答えて

2

ファイルをアプリケーションに同梱したい場合は、アセットフォルダにファイルを配置することはできません。あなたはそれらのurlでそれらにアクセスすることができます

ファイル:///android_asset/your_file.wav

Webページに有用です。あなたは、インスタンスのための資産フォルダに保存されているいくつかのCSSを持っており、次のようにそれを参照することができます。

<link rel="stylesheet" type="text/css" href="file:///android_asset/your.css" /> 

Javaコード内のファイルにアクセスしたい場合は、2つのオプションがあります。そのファイル名でAssetManager経由でファイルのInputStreamを開くために、あなたのファイルのために言及したURLと開いたInputStreamによってAssetFileDescriptor

  • を得る

    他のプロジェクトフォルダは、の.apkにパックされていませんライブラリを配布することになっているlibsフォルダと、リソースメソッド/ローダを介してのみアクセス可能なリソースを格納するresフォルダを除きます。コンテンツファイルはアセットフォルダにある必要があります。

  • +0

    大丈夫@vitakot、クイック・ポイント1つ - android_assetのパスでは、これは常にこの2つの単語か、問題のパッケージまたはアプリ名へのリンクです?例えばファイル例=新しいファイル( "android_asset/example.wav"); – NIM

    +0

    ちょっと待って、私の答えを編集する必要があります、それは正しくありません。 – vitakot

    1

    が私のために、私は\ srcフォルダ内のファイルが最初の場所でAPKに同梱されている場合

    MediaPlayer player = new MediaPlayer(); 
    AssetFileDescriptor afd = resources.openRawResourceFd(R.raw.music.wav); 
        if (afd != null) { 
         player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), 
           afd.getLength()); 
         afd.close(); 
        } 
    
    関連する問題