C# 如何从外部访问锁定WinRT中的文件?

C# 如何从外部访问锁定WinRT中的文件?,c#,windows-runtime,windows-store-apps,async-await,windows-8.1,C#,Windows Runtime,Windows Store Apps,Async Await,Windows 8.1,我正在使用ReadWrite访问权限在Windows 8应用程序中打开一个文件,但该文件仍可以在应用程序外部修改。例如,用ReadWrite打开一个文件,当它仍然打开时(即不要处理irandomaccesstream),在Windows资源管理器中转到该文件并将其删除。您将看到它被删除,但我需要阻止它,以便文件系统显示如下内容: “无法删除文件。其他进程正在使用该文件。” 有人知道如何做到这一点吗?如何物理锁定文件?您必须编写一个C++/CX库,该库使用CreateFile2()并省略文件共享删

我正在使用
ReadWrite
访问权限在Windows 8应用程序中打开一个文件,但该文件仍可以在应用程序外部修改。例如,用
ReadWrite
打开一个文件,当它仍然打开时(即不要处理
irandomaccesstream
),在Windows资源管理器中转到该文件并将其删除。您将看到它被删除,但我需要阻止它,以便文件系统显示如下内容:

“无法删除文件。其他进程正在使用该文件。”


有人知道如何做到这一点吗?如何物理锁定文件?

您必须编写一个C++/CX库,该库使用CreateFile2()并省略文件共享删除选项。有点怀疑你是否认为这是可行的。我有一种感觉:/
using (var stream = await File.OpenAsync(FileAccessMode.ReadWrite))
{
    await Task.Delay(TimeSpan.FromMinutes(1)); // delete the file in explorer while this waits.
}