点击或拖拽改变大小

Functions.FOpen 方法 (String)

X#
打开一个文件。

命名空间:  XSharp.Core
程序集:  XSharp.Core (在 XSharp.Core.dll 中) 版本:2.22 GA
语法
 FUNCTION FOpen(
	cFileName AS STRING
) AS IntPtr
查看代码

参数

cFileName
类型:String
文件名,包括可选的驱动器、目录和扩展名。忽略 SetDefault() 和 SetPath() 设置;除非您在文件名中指定驱动器和目录,否则使用 Windows 默认值。不假定任何扩展名。
在发生并发控制冲突的情况下,此函数设置 NetErr()。

返回值

类型:IntPtr
打开文件的文件句柄,范围为 0 到 32,767。
此值类似于数据库系统中的别名,用于向其他文件函数标识打开的文件。
因此,将返回值分配给变量以供后续使用很重要,如下面的示例所示。 如果发生错误,FOpen() 返回 F_ERROR。可以使用 FError() 确定具体错误。
备注
FOpen() 是一个低级文件函数,用于打开现有文件以进行读取和写入,具体取决于 kMode 参数。 请注意,为了让两个进程同时使用同一个文件,两个文件都应以 FO_SHARED 共享模式打开。 每当出现错误时,可以使用 FError() 确定具体错误。
例如,如果文件不存在,FOpen() 返回 F_ERROR,FError() 返回 2 表示未找到文件。
示例
此示例使用 FOpen() 以可共享读/写状态打开文件,如果打开失败则显示错误消息:
X#
1ptrHandle := FOpen("temp.txt")
2IF ptrHandle = F_ERROR
3    ? DOSErrString(FError())
4ENDIF
此示例使用 FOpen() 打开文件,如果 FOpen() 失败则可选重试:
X#
 1FUNCTION NetOpen(cFile AS STRING,;
 2        wMode AS DWORD, wSeconds AS DWORD);
 3        AS LOGIC PASCAL
 4    LOCAL lForever AS LOGIC
 5    // 如果 wSeconds 为零则永远重试
 6    lForever := (wSeconds = 0)
 7    DO WHILE (lForever .OR. wSeconds > 0)
 8        IF FOpen(cFile, wMode) != F_ERROR
 9        RETURN TRUE          // 打开成功
10        ENDIF
11        InKey(1)            // 等待一秒
12        wSeconds -= 1
13    ENDDO
14    RETURN FALSE            // 打开失败
参见