gpt4 book ai didi

c# - 打开 C : Directly with `FileStream` without `CreateFile` API

转载 作者:行者123 更新时间:2023-11-30 15:48:49 25 4
gpt4 key购买 nike

我试图用 FileStream 直接打开 C: 但没有成功:

new FileStream("C:", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

System.UnauthorizedAccessException was unhandled

Message="Access to the path 'C:\' is denied."

Source="mscorlib"

StackTrace:

  in  System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

in System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)

in System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)

in System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

in ReadingMftNewTest.Program.Main(String[] args) in D:\CS\2008\ReadingMftNewTest\ReadingMftNewTest\Program.cs:line 76

请注意,我打开“C:”但错误显示“C:\”,这个斜线是从哪里来的? :\

是否有机会在不使用 CreateFile API 的情况下打开 C:?

我真的不想依赖 WIN32 API,因为这段代码也应该在不支持 WIN32 API 的 Mono 上运行,但可以使用常规 FileStream (Mono 1 Microsoft 0) 成功打开设备。

最佳答案

我终于找到了一种方法来做到这一点:

new FileStream(@"C:\$Volume", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

这仅适用于 NTFS 卷。

关于c# - 打开 C : Directly with `FileStream` without `CreateFile` API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com