Functions.FOpen 方法 (String) | |
打开一个文件。
命名空间:
XSharp.Core
程序集:
XSharp.Core (在 XSharp.Core.dll 中) 版本:2.22 GA
语法 FUNCTION FOpen(
cFileName AS STRING
) AS IntPtr
public static IntPtr FOpen(
string cFileName
)
查看代码参数
- 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() 以可共享读/写状态打开文件,如果打开失败则显示错误消息:
1ptrHandle := FOpen("temp.txt")
2IF ptrHandle = F_ERROR
3 ? DOSErrString(FError())
4ENDIF
此示例使用 FOpen() 打开文件,如果 FOpen() 失败则可选重试:
1FUNCTION NetOpen(cFile AS STRING,;
2 wMode AS DWORD, wSeconds AS DWORD);
3 AS LOGIC PASCAL
4 LOCAL lForever AS LOGIC
5
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
参见