Я пытался открыть C: напрямую с FileStream без успеха:
new FileStream("C:", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Исключение System.UnauthorizedAccessException было обработано
Message = "Доступ к пути 'C: \' запрещен."
Источник = "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: \", откуда взялась эта косая черта? : \
Есть ли шанс открыть C: без использования CreateFile
API?
Я действительно не хочу зависеть от WIN32 API, потому что этот код также должен работать на Mono, который не поддерживает WIN32 API, но успешно открывает устройства с обычным FileStream (Mono 1 Microsoft 0).