说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB创建临时文件

HTML文档下载 WORD文档下载 PDF文档下载
VB创建临时文件

在Visual Basic 中 开 发 应 用 程 序 的 时 候, 可 能 会 需 要 在 磁 盘 上 创 建 一 个 临 时 目 录, 本 文 将 介 绍 如 何 在Visual Basic 版 本4.0 中 创 建 临 时 文 件。

使 用GetTempFileName 函 数
---- 可 以 通 过 使 用API 函 数 中 的GetTempFileName 函 数 来 在 一 个 指 定 的 磁 盘 驱 动 器 上 创 建 一 个 新 的 文 件。 尽 管 所 创 建 的 文 件 是 一 个 临 时 的 文 件, 当 不 再 需 要 它 的 时 候, 程 序 员 还 是 需 要 将 它 从 磁 盘 上 物 理 地 删 除 掉。
---- 要 在VB 中 使 用GetTempFileName 函 数, 必 须 将 如 下 的 声 明 语 句 包 含 在 程 序 中( 注 意 该 声 明 语 句 需 要 被 书 写 在 一 行 内):

---- Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long

---- 该GetTempFileName 函 数 需 要4 个 参 数:

---- 第 一 个 参 数 是 希 望 创 建 新 文 件 的 驱 动 器 和/ 或 路 径 的 名 称, 在 下 面 的 样 例 程 序 中, 新 文 件 创 建 在 驱 动 器C 的 根 目 录 下。

---- 第 二 个 参 数 是 指 派 给 文 件 名 称 的 前 缀。

---- 第 三 个 参 数 应 该 被 设 置 为0, 告 诉 该 函 数 为 文 件 名 称 自 动 产 生 随 机 号 码。 该 随 机 号 码 然 后 被 添 加 到 前 缀 字 符 的 后 面 以 产 生 一 个 独 特 的 和 完 整 的 文 件 名 称。

---- 第 四 个 参 数 是 一 个 字 符 串 缓 存, 它 至 少 要 有256 个 字 符 的 长 度, 以 存 放 临 时 文 件 的 名 称。 在 调 用 该 函 数 之 后, 新 文 件 创 建 在 指 定 的 磁 盘 上。 这 里 重 申 一 下, 当 退 出 应 用 程 序 时, 必 须 物 理 地 将 该 文 件 从 磁 盘 上 删 除。

样 例 程 序
---- 该 程 序 显 示 了 如 何 在VB 应 用 程 序 中 创 建 一 个 临 时 文 件。
---- 1. 在Visual Basic 中 开 始 一 个 新 的 工 程, 采 用 缺 省 的 方 法 建 立Form1。
---- 2. 将 如 下 声 明 语 句 添 加 到Form1 的 通 用 声 明 部 分 中( 注 意 该 声 明 语 句 需 要 被 书 写 在 一 行 内):

---- Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long

---- 3. 将 如 下 代 码 添 加 到Form1 的Form_Load 事 件 中:

Private Sub Form_Load()
Text1.TEXT = ""
End Sub
---- 4. 在Form1 上 添 加 一 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建 立Text1。
---- 5. 在Form1 上 添 加 一 个 命 令 按 钮 控 件, 采 用 缺 省 的 方 法 建 立Command1。
---- 6. 将 如 下 的 代 码 添 加 到Command1 的 单 击 事 件 中:
Private Sub Command1_Click()
Dim FilePrefix As String
Dim NewFile As String * 256
FilePrefix = "TEST"
NewFile = GetTempName(FilePrefix)
Text1.TEXT = NewFile
End Sub

---- 7. 创 建 一 个 新 的 名 为GetTempName 的 函 数, 将 如 下 代 码 添 加 到 该 函 数 中:
Private Function GetTempName(TmpFilePrefix As String) As String
Dim TempFileName As String * 256
Dim X As Long
Dim DriveName As String
DriveName = "c:\"
X = GetTempFileName(DriveName, TmpFilePrefix, 0, TempFileName)
GetTempName = Left$(TempFileName, InStr(TempFileName, Chr(0)) - 1)
End Function

---- 按 下F5 键, 执 行 样 例 程 序。 单 击 命 令 按 钮, 在 驱 动 器C 的 根 目 录 下 创 建 一 个 新 的 临 时 文 件。 该 新 创 建 的 文 件 的 名 称 被 显 示 在 文 本 框 控 件 中

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘