一个奇怪的问题

用 Win32 API CreateFile 打开软驱并返回一个 Handle ,然后用这个 Handle 构造 .NET 的 FileStream 。代码如下:

None.gif IntPtr handle = CreateFile(
    "\\\\.\\A:",
    (uint)FileAccess.Write,
    (uint)FileShare.Write,
    0,
    (uint)FileMode.Open,
    0,
    0
    );
  
 FileStream fs 
=   new  FileStream(handle,FileAccess.Write);

运行便会在构造 FileStream 的时候发生异常:

None.gif 未处理的异常: System.IO.IOException: 参数不正确。
None.gif
None.gif   at System.IO.__Error.WinIOError(Int32 errorCode, String str)
None.gif   at System.IO.FileStream.get_Length()
None.gif   at System.IO.FileStream..ctor(IntPtr handle, FileAccess access, Boolean ownsH
None.gifandle, Int32 bufferSize, Boolean isAsync)
None.gif   at System.IO.FileStream..ctor(IntPtr handle, FileAccess access, Boolean ownsH
None.gifandle)

非常奇怪,有谁知道为什么吗?用类似的 CreateFile 构造 FileStream 访问其他文件(包括 FileStream 目前还不直接支持的 NTFS 命名流)都没问题的。
posted on 2004-07-29 22:49  数字冰块 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lesteryu/archive/2004/07/29/28453.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值