2016-09-04 25 views
2

アセットフォルダにdata.xlsxというファイルがあり、いくつかのライブラリを適用するにはそのパスを取得する必要があります。Xamarinでアセットファイルのパスを取得する方法は?

ここにいくつかの解決策が見つかりましたが、どちらもうまくいきません。たとえば、 - File Not Found Exception In Xamarin program

私はfile:///android_asset/data.xlsxを使用しようとしましたが、ここでもファイルはありません。

私がしてパスをチェックします。このファイルへのパスを取得するには、どのようにSystem.IO.File.Exists(filePath);

?たぶん私は別のフォルダに配置する必要がありますか?

更新:多分私はこの方法でそれを解決することができます:java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed

しかし、私はどこにそれを配置する場所を見つけることができません。

更新:この質問は、Javaについてであり、これはXamarin.Androidで、このソリューションを使用するかは不明である:ファイルはAPKに含まれていないようHow to get the android Path string to a file on Assets folder?

+0

* file://android_asset/data.xlsx *の代わりに* file://android_asset/data.xlsx *を使用してください。 –

+0

@MiladYarmohammadi、同じ結果です。 – InfernumDeus

+1

を参照してください。http://stackoverflow.com/questions/8474821/how-to-get-the-android-path-string-to-a-file-on-assets-folder –

答えて

0

それは不可能だように見えます。

最も簡単な解決策は、ファイルをキャッシュに書き込むことです。

2

が見えます。 Asset-folder内のファイルのビルドアクションに設定されていることを確認します.AndroidAsset

Xamarin.androidを使用して、一般的に
+0

良い点ですが、はい、自動的にAndroidAssetに設定されました。 – InfernumDeus

+0

AssetManagerを介してアセットを開くと、有効なストリームが得られますか? –

+0

はい。それは有効です。 – InfernumDeus

1

、あなたはこのコードを使用することができます:

private string _fileName {get;set;} 

     public string FileFullPath 
     { 
     get 
      { 
      return Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures),_fileName); 
      } 
     } 

はそれが役に立てば幸いに.. :)

+0

「Android.OS.Environment.DirectoryPictures」以外のディレクトリを何とか参照できますか?私のファイルは入力データなので、これは少し不適切です。 – InfernumDeus

関連する問題