0

私は Xamarin.Android を使用しており、例外やメッセージが記録されるときに作成して追加するログ ファイルがあります。テキストファイルに書き込むだけの、非常に単純なロガーです。誰かがバグ レポートを送信したときに、log.txt ファイルを電子メールに添付したいと考えています。これはアクセス許可エラーが原因で失敗します (詳細はわかりません) が、ログ ファイルを保存しているフォルダーに関連しています。log.txt ファイルを保存する場所を示す次のコードを使用しています。 .

    public readonly static string BaseDir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
    public readonly static string LogFilename = System.IO.Path.Combine(BaseDir, "log.txt");

動作しない log.txt ファイルを添付するために使用するコードは次のとおりです。

Java.IO.File file = new Java.IO.File(Utils.LogFilename);
intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(file));

添付ファイルを電子メールで使用できるようにするために、Android デバイス (SD カードであるかどうかに関係なく) でファイルを保存する正しい場所はどこですか?

ありがとうございました。

4

1 に答える 1

0

System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);アプリのプライベート ディレクトリが提供されます。このディレクトリは/data/data/<your app namespace>/files、特定のアプリでのみ解決され、読み取り可能です。

おそらく必要なのはAndroid.OS.Environment.ExternalStorageDirectory、外部ストレージへのパスを提供するものを使用することです。これはSDカードである可能性があります。これはデバイスに依存します。そこで、特定のアプリ用のフォルダーを作成し、そこにファイルを保存して、メール アプリに渡すことができます。

于 2013-10-14T23:08:13.460 に答える