FileStream.Handle 属性

注意:此属性现在已过时。

获取当前 FileStream 对象所封装文件的操作系统文件句柄。

**命名空间:**System.IO
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
<ObsoleteAttribute("This property has been deprecated.  Please use FileStream's SafeFileHandle property instead.  https://go.microsoft.com/fwlink/?linkid=14202")> _
Public Overridable ReadOnly Property Handle As IntPtr
用法
Dim instance As FileStream
Dim value As IntPtr

value = instance.Handle
[ObsoleteAttribute("This property has been deprecated.  Please use FileStream\'s SafeFileHandle property instead.  https://go.microsoft.com/fwlink/?linkid=14202")] 
public virtual IntPtr Handle { get; }
[ObsoleteAttribute(L"This property has been deprecated.  Please use FileStream\'s SafeFileHandle property instead.  https://go.microsoft.com/fwlink/?linkid=14202")] 
public:
virtual property IntPtr Handle {
    IntPtr get ();
}
/** @property */
public IntPtr get_Handle ()
public function get Handle () : IntPtr

属性值

FileStream 对象所封装文件的操作系统文件句柄,或者如果 FileStream 已关闭,则为 -1。

异常

异常类型 条件

SecurityException

调用方没有所要求的权限。

备注

此属性是与操作系统提供的系统调用(如 Windows 上的 ReadFile)一起使用的操作系统句柄。它无法与需要文件描述符的 C 库函数(如 fread)一起使用。

操作系统句柄可能已经同步或异步打开,取决于所调用的是哪个 FileStream 构造函数。使用 IsAsync 属性确定此句柄是否是异步打开的。在 Win32 中,这意味着该句柄是为重叠的 IO 打开的,它对 ReadFileWriteFile 要求不同的参数。

警告

如果创建 FileStream、传递它的句柄、某些操作移动句柄的文件指针,然后再次使用 FileStream,则可能发生数据损坏。多个线程无法同时安全地向同一个文件写入,而且 FileStream 缓冲代码假定它以独占方式控制该句柄。如果 FileStream 检测到一些其他进程已经移动文件指针,FileStream 可能引发 IOException。为避免这种情况,请不要将任何数据写入 FileStream 可能已缓冲的文件部分,并且将文件指针还原为上一次在 FileStream 上调用方法时文件指针所在的位置。

.NET Framework 安全性

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:1.0、1.1
在 2.0 中过时(编译器警告)

请参见

参考

FileStream 类
FileStream 成员
System.IO 命名空间

其他资源

文件和流 I/O
如何:从文件读取文本
如何:向文件写入文本