Androidで名前付き設定ファイルを削除します
-
29-09-2019 - |
質問
呼び出して新しい設定ファイルを作成できます Context.GetSharedPreferences(String name、int Mode), 、返された設定の編集者にいくつかの値を置き、コミットします。ただし、APIにインターフェイスが表示されないため、作成されたファイルが不要になったときに削除されます。私はもう試した context.deletefile(string name), 、同じものを通過します name
上からの議論ですが、それは戻ります false
, 、ファイルが実際に削除されていないことを示します。それが違いを生む場合、私はmode_privateを使用しています。
のソースを閲覧します 編集者のコンテキストの実装 私が知る限り、手がかりも明らかにしません。
何か案は?ここでの背景は、ユーザーが「現在の」設定のコピーを保存できるようにして、以前に保存された設定を復元できるようにすることです。彼らがそれらの設定をもう望まないとき、私はそれがスペースを占有しないように保存された設定ファイルを削除したいです。現時点で私ができる最善のことは edit().clear().commit
ファイルでは、ほとんどの内容を削除すると思います。ただし、削除ほど良くありません。
解決
Context.DeleteFile(String Name)を試して、上から同じ名前の引数を渡しましたが、それはFALSEを返し、ファイルが実際に削除されていないことを示しています。
これは、ファイルがそのディレクトリにないためです。
ここでの背景は、ユーザーが「現在の」設定のコピーを保存できるようにして、以前に保存された設定を復元できるようにすることです。
どのようにコピーを作っていますか?
サポートされているAPIの観点から、あなたは本当のものを作ることによって最高にサービスされています SharedPreferences
現在のアクティブな設定であり、バックアップを実行して、独自のディレクトリで自分のファイル形式に復元します。
あなたがその方向に進むことを妨げられている場合、ファイルはのXMLファイルになります ../shared_prefs
に関連するディレクトリ getFilesDir()
, 、そのため、適切なファイルオブジェクトを構築して、そのように削除できます。ただし、Androidは後でこの場所を変更したり、ストレージモデルを変更することもできるため、将来的に互換性の問題に遭遇する可能性があることに注意してください。