如何调用API中的copyfile函数复制文件
VB中对CopyFile这个api做的说明如下:CopyFile-----------------------------------------------------...
VB中对CopyFile这个api做的说明如下:CopyFile
-------------------------------------------------------------------------------------------------------
VB声明
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
说明
复制文件。与vb的filecopy命令相似
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpExistingFileName String,源文件名
lpNewFileName String,目标文件名
bFailIfExists Long,如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件被改写
---------------------------------------------------------------------------------------------------------
这是API手册上的,我想知道在VB中如何调用它!以实现文件的复制~
不要写直接写“CopyFile 文件1,文件2”
我是想学习调用API,才举这个例子!
写的好~继续加分! 展开
-------------------------------------------------------------------------------------------------------
VB声明
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
说明
复制文件。与vb的filecopy命令相似
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpExistingFileName String,源文件名
lpNewFileName String,目标文件名
bFailIfExists Long,如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件被改写
---------------------------------------------------------------------------------------------------------
这是API手册上的,我想知道在VB中如何调用它!以实现文件的复制~
不要写直接写“CopyFile 文件1,文件2”
我是想学习调用API,才举这个例子!
写的好~继续加分! 展开
3个回答
展开全部
要站在高一点看问题:
1,函数:
通常用:变量 = 函数名(参数列表)
这样,执行了这个命令,就返回一个值给变量
所以,这样你就记住函数的使用(调用)格式;
2,参数列表,是调用函数的时候,要告诉函数的自变量。
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
这个函数有三个参数:
ByVal lpExistingFileName As String
ByVal -- 该参数以传值方式进行调用
lpExistingFileName -- 参数的名称,代表源文件标识符
String -- 参数的数据类型为字符串类型
ByVal lpNewFileName As String
lpNewFileName -- 参数的名称,代表目标文件标识符
ByVal bFailIfExists As Long
bFailIfExists -- 参数的名称,设置当目标存在同名文件时是否继续复制;
当非0(True),那么一旦目标文件存在,则调用复制失败、
当为0(False),那么一旦目标文件存在,则复制成功并覆盖
最后,这个函数返回的是一个长整型,当返回0表示复制失败,非0表示成功;
在VB里使用:
代码如下:
Option Explicit
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Sub Command1_Click()
Dim a As Long
a = CopyFile("c:\1.bmp", "d:\1.bmp", 1)
If a = 0 Then
MsgBox "失败"
Else
MsgBox "成功"
End If
End Sub
1,函数:
通常用:变量 = 函数名(参数列表)
这样,执行了这个命令,就返回一个值给变量
所以,这样你就记住函数的使用(调用)格式;
2,参数列表,是调用函数的时候,要告诉函数的自变量。
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
这个函数有三个参数:
ByVal lpExistingFileName As String
ByVal -- 该参数以传值方式进行调用
lpExistingFileName -- 参数的名称,代表源文件标识符
String -- 参数的数据类型为字符串类型
ByVal lpNewFileName As String
lpNewFileName -- 参数的名称,代表目标文件标识符
ByVal bFailIfExists As Long
bFailIfExists -- 参数的名称,设置当目标存在同名文件时是否继续复制;
当非0(True),那么一旦目标文件存在,则调用复制失败、
当为0(False),那么一旦目标文件存在,则复制成功并覆盖
最后,这个函数返回的是一个长整型,当返回0表示复制失败,非0表示成功;
在VB里使用:
代码如下:
Option Explicit
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Sub Command1_Click()
Dim a As Long
a = CopyFile("c:\1.bmp", "d:\1.bmp", 1)
If a = 0 Then
MsgBox "失败"
Else
MsgBox "成功"
End If
End Sub
2013-03-29
展开全部
头文件中包含这个就OK了
windows.h
#include<windows.h>
之后就是直接待用函数名,恩,貌似API函数对大小写敏感
windows.h
#include<windows.h>
之后就是直接待用函数名,恩,貌似API函数对大小写敏感
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CopyFile
说明 复制一个文件到新的地方; 目标可以是一个文件或端口. 返回一个逻辑值 (0 失败, 其它值则成功) 第三个参数也是一个逻辑值 - 0 失败其它值成功. 当复制到一个端口或队列的 UNC时, 第三个参数必须是 0.
失败原因可以调用 GetLastError() 来检查
宿主文件 KERNEL32.DLL
在 Visual FoxPro中的定义
DECLARE INTEGER CopyFile IN KERNEL32.DLL ;
STRING @SourceFileName, ;
STRING @DestFileName, ;
INTEGER bFailIfExists
Visual FoxPro 示例
DECLARE INTEGER CopyFile IN KERNEL32.DLL ;
STRING @SourceFileName, ;
STRING @DestFileName, ;
INTEGER bFailIfExists
cMySourceFileName = "C:\Program Files\Microsoft Visual Studio\Vfp98\VFP6.EXE"
cMyPortOrUNC = "C:\TMP\VFP6.EXE"
IF CopyFile(cMySourceFileName,cMyPortOrUNC,0) # 0
wait window "文件复制成功"
ELSE
wait window "文件复制失败"
ENDIF
说明 复制一个文件到新的地方; 目标可以是一个文件或端口. 返回一个逻辑值 (0 失败, 其它值则成功) 第三个参数也是一个逻辑值 - 0 失败其它值成功. 当复制到一个端口或队列的 UNC时, 第三个参数必须是 0.
失败原因可以调用 GetLastError() 来检查
宿主文件 KERNEL32.DLL
在 Visual FoxPro中的定义
DECLARE INTEGER CopyFile IN KERNEL32.DLL ;
STRING @SourceFileName, ;
STRING @DestFileName, ;
INTEGER bFailIfExists
Visual FoxPro 示例
DECLARE INTEGER CopyFile IN KERNEL32.DLL ;
STRING @SourceFileName, ;
STRING @DestFileName, ;
INTEGER bFailIfExists
cMySourceFileName = "C:\Program Files\Microsoft Visual Studio\Vfp98\VFP6.EXE"
cMyPortOrUNC = "C:\TMP\VFP6.EXE"
IF CopyFile(cMySourceFileName,cMyPortOrUNC,0) # 0
wait window "文件复制成功"
ELSE
wait window "文件复制失败"
ENDIF
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询