2

ファイルシステムにJSONを保存します。ユーザーはファイルを表示/削除できないようにファイルを保存する必要があります。電話の再起動後や再起動後にファイルが削除されないようにするにはどうすればよいですか?Xamarin PCLプロジェクトのファイルを操作する

ApplicationDataプログラムを実行するユーザーに固有のアプリケーションデータのディレクトリ。 Windows以外のオペレーティングシステムでは、この のパスは、環境変数XDG_CONFIG_HOMEの値が の場合は値になり、それ以外の場合は現在のユーザーのホームディレクトリ の ".config"ディレクトリになります。

CommonApplicationDataアプリケーションによって共有されるデータのディレクトリ。 Windows以外のオペレーティングシステムの場合、 "/ usr/share" ディレクトリ。

LocalApplicationDataコンピュータのユーザーが共有するアプリケーションデータのディレクトリ。 Windows以外のオペレーティングシステムでは、このパスは 環境変数XDG_DATA_HOMEの値が設定されている場合は 、それ以外の場合は現在のユーザーのホーム ディレクトリの ".local/share"ディレクトリになります。

個人現在のユーザーの個人用またはホームディレクトリ。 Windows以外のオペレーティングシステムでは、これはユーザーのホームディレクトリです。

出典:System.Environment.SpecialFolder

私は個人的には、正確に何のためにあるのか分かりませんが、ウェブ上のほとんどのサイトに私はそれを使っている人を発見しました。私はこれらのいずれかを使うべきか、間違ったことを見ているのでしょうか?

そして、現時点で格納する(2017年5月)私の唯一の2つのオプションがSQLiteのPCLStorageです。

答えて

2

要件には、以下のいずれかのフォルダを使用できます。あなたの質問を正しく理解していれば、電話機の再起動や再起動時に保存されるべき特定のファイルにアクセス(作成/更新/削除)できるようにするだけで、ファイルにアクセスできないようにします。あなたは特別なフォルダ以下のいずれかのを使用することができます。

  • Environment.SpecialFolder.ApplicationData/data/data/@[email protected]/files/.configにマップ$HOME/.config、です。

  • Environment.SpecialFolder.LocalApplicationDataは、/data/data/@[email protected]/files/.local/shareにマップする$HOME/.local/shareです。

  • Environment.SpecialFolder.PersonalはJSONファイルを保存するために、私はおそらくEnvironment.SpecialFolder.ApplicationDataを選ぶだろう、/data/data/@[email protected]/filesファイルシステムへの説明とマッピングを見てみると

にマップされ、$HOMEですが、中には何も問題がないように思えますどのようにファイルシステムにマップするかに基づいて、3つのうちのいずれかを選択します。

これらのすべてのパスがアプリパッケージの特定のディレクトリ内にあるため、他のアプリがこれらのファイルにアクセスできないことに注意してください。また、いずれのファイルシステムからでもアクセスすることはできません(電話機がルートされている場合を除く)。

あなたが任意のファイルパスの詳細情報が必要な場合、あなたはこのように、それらを反復処理することができます

static void PrintFolderPath(System.Environment.SpecialFolder folder) 
{ 
    Console.WriteLine ("{0}={1}", folder, System.Environment.GetFolderPath(folder)); 
} 

もっと読み:https://forums.xamarin.com/discussion/3773/system-environment-specialfolder

+0

をこれら3つのディレクトリ間のいずれかの権限の違いはありますか?違いはありますか? – JedatKinports

+0

これらはすべて同じアプリケーションパッケージディレクトリの下にあるため、権限の違いはありません。ちょうど彼らの位置は異なります。これらの実装の詳細については、ドキュメントは実際には見当たりません。ファイルを扱うサンプルは、ファイルを保存するために 'Personal'を使います:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/files/#iOS_and_Android – degant

+0

私はそのリンクを見ましたが、あなたがすでに言ったように、ドキュメントは本当に貧しいので、私はこの質問をしたし、私は自分のPCLプロジェクトでこれを行う必要があることを忘れてしまった。ありがとう、私が知りたかったのはそれだけです。 :) – JedatKinports

関連する問題