私は、外部アプリケーションがそれを読むことができるファイルを書きたいと思っていますが、私はIsolatedStorageの利点もいくつか望みます。もらってもいい?IsolatedStorageファイルのパスを取得して外部アプリケーションから読み取ることはできますか?
15
A
答えて
23
リフレクションを使用してIsolatedStorageFileStream
クラスのプライベートフィールドにアクセスすることで、ディスク上の隔離されたストレージファイルのパスを取得できます。ここに例があります:
// Create a file in isolated storage.
IsolatedStorageFile store = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);
IsolatedStorageFileStream stream = new IsolatedStorageFileStream("test.txt", FileMode.Create, store);
StreamWriter writer = new StreamWriter(stream);
writer.WriteLine("Hello");
writer.Close();
stream.Close();
// Retrieve the actual path of the file using reflection.
string path = stream.GetType().GetField("m_FullPath", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(stream).ToString();
私はそれが推奨された方法です。
ディスク上の場所はオペレーティングシステムのバージョンによって異なり、他のアプリケーションにその場所にアクセスする権限があることを確認する必要があることに注意してください。
6
代わりの一時ファイルを作成し、それを直接ストアからのパスを取得することができ場所を取得:
var path = store.GetType().GetField("m_RootDir", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(store).ToString();
8
を私がするFileStreamのNameプロパティを使用します。
private static string GetAbsolutePath(string filename)
{
IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication();
string absoulutePath = null;
if (isoStore.FileExists(filename))
{
IsolatedStorageFileStream output = new IsolatedStorageFileStream(filename, FileMode.Open, isoStore);
absoulutePath = output.Name;
output.Close();
output = null;
}
return absoulutePath;
}
このコードはWindows Phone 8 SDKでテストされています。
+1
「デスクトップ」.Net 4.5では、名前は「不明」です。 – habakuk
関連する問題
- 1. プロジェクトのweb.configを外部アセンブリで読み取ることはできますか?
- 2. Jarから外部ファイルを読み取る
- 3. サーブレットから外部ファイルを読み取る
- 4. iOS外部アクセサリからファイルを読み取る
- 5. PHPはPowerPointファイルからテキストを読み取ることができますか?
- 6. O/R BrokerにJARファイルの内部からSQL文を読み取らせることはできますか?
- 7. エミュレータの外部ストレージからファイルを読み取ることができません
- 8. 外部から読み込まれたswfからローダーの子を取得
- 9. 外部ctpファイルからブロックを取得
- 10. 角度jsを使用してjsonファイルから外部URLを読み取る
- 11. Linuxサーバーからgeolitecityファイルのパスを読み取る方法は?
- 12. 外部ページを読み込むことはできますか?
- 13. はディレクトリからファイルを読み取ることができません
- 14. 外部から作成されたファイルからデータを読み取る
- 15. SQLiteデータベースから読み取ることができません。アクティビティカーソルからデータを取得中にクラッシュする
- 16. xcodeのファイルからデータを読み取ることができません
- 17. cURLを使用してPHPファイルからPHPコードを読み取ることはできますか?
- 18. ResourceDictionary外部アセンブリから[UnmanagedMemoryStreamから読み取られたオブジェクト]
- 19. PhoneGapアプリケーションでXUI経由で外部サーバーのPHPファイルからJSON/JSONpデータを取得していますか?
- 20. 外部プロセスからの出力を読み取る
- 21. ディレクトリからファイルを読み取ることができません - android
- 22. ファイルから国際文字を読み取ることができません
- 23. csvファイルから値を読み取ることができません
- 24. NETMFソケットから読み取ることができません
- 25. MYSQLから読み取ることができません
- 26. jQueryはCookieを読み取ることができますか?
- 27. PhononはMacOS上で.aviファイルを読み取ることができますか?
- 28. divをjavacriptとjqueryで外部ファイルdivから読み込み
- 29. 外部XMLから画像を取得してアプリケーションで表示する方法
- 30. は、私はパスでファイルのリストを取得することができます
少なくともSilverlight 4では、このリフレクションを実行しようとすると... mscorlib.dllで 'System.FieldAccessException'型の最初のチャンス例外が発生しました 追加情報:メソッド 'Comms.MainPage.LayoutRoot_Loaded (System.Object、System.Windows.RoutedEventArgs) 'フィールド' System.IO.IsolatedStorage.IsolatedStorageFile.m_StorePath 'にアクセスできませんでした。また、 "m_FullPath"ではなく "m_StorePath"になりました。それを使用しない理由がさらにあります。 – DJA
@DJAセキュリティ上の理由から、Silverightでリフレクションしてプライベートメンバーを取得できないためです。 – ghord