1

デスクトップの Windows 10 で基本的な UWP アプリを実行しています。アプリはカスタム ファイル形式を定義し、ユーザーがドキュメントを開いて編集できるようにします。

a を使用しFileOpenPickerて、ユーザーがファイルを選択できるようにします。

私の質問は、ユーザーがアプリでドキュメントを開いているときに、アプリの外部 (Windows エクスプローラーなど) でドキュメントの名前を変更/移動/削除するのを防ぐにはどうすればよいですか?

Word Mobile は、開いているドキュメントをロックします。Windows エクスプローラーで開いているドキュメントの名前を変更しようとすると、次のエラーが表示されます。

「Runtime Broker でファイルが開かれているため、アクションを完了できません。ファイルを閉じて、もう一度やり直してください。」

私は同じことを達成したい。Word Mobile アプリが特別なモードでファイルを開いているか、何らかの方法でロックしていると思われます。さまざまなStoragefile.OpenXXX()方法を試しましたが、うまくいきませんでした:

// None of these seem to exclusively lock the file:
stream = await file.OpenStreamForWriteAsync();
stream = await file.OpenTransactedWriteAsync();
stream = await file.OpenAsync(FileAccessMode.ReadWrite);
stream = await file.OpenReadAsync();
4

2 に答える 2

1

これがあなたが探している電話であるべきだと思います:

file.OpenAsync(FileAccessMode.Read, StorageOpenOptions.AllowOnlyReaders);

から: https://docs.microsoft.com/en-us/uwp/api/windows.storage.storageopenoptions?view=winrt-19041

于 2020-11-06T19:20:38.647 に答える
0

ファイルに設定できる ShareMode があります。これを「None」に設定すると、開いたままにしている限り、他の誰もこのファイルを開いたり変更したりできなくなります。

new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);

これは、利用可能な System.IO を使用します。完全なドキュメントはこちら: https://msdn.microsoft.com/en-us/library/system.io.fileshare(v=vs.110).aspx

それはあなたを助けますか?

于 2016-05-19T13:09:08.863 に答える