我要把c:\book文件夹下的所有文件和文件夹,复制到d:\book文件夹下,,,,,帮我参看这里的代码改下,好么,小妹以身相许!!!!
Function Boolean CopyFileA(String lpExistingFileName,
String lpNewFileName, Boolean bFailIfExists) library "Kernel32.dll" Alias for "CopyFile"
lpExistingFileName = "d:\aa\data\a.dbf"
lpNewFileName = "d:\aa\data1\a.dbf"
bFailIfExists = false
1、文件拷贝
函数声明:
FUNCTION boolean CopyFileA(ref string cfrom, ref string cto, boolean flag) LIBRARY "Kernel32.dll"
调用:
string ls_source, ls_des
boolean lb_flag, lb_rtn
lb_flag = false
ls_source = "c:\book.xls" //源文件
ls_des = "C:\tmp\111.xls" //目标文件
lb_rtn = CopyFileA(ls_source, ls_des, lb_flag)
MessageBox("文件拷贝", string(lb_rtn))
补充:
如果该函数是这样申明的:
FUNCTION boolean CopyFileA(ref string lpExistingFileName,ref string lpNewFileName,boolean bFailIfExists) LIBRARY "kernel32.dll"
那么函数中的前两个参数必须使用变量,不能使用常量
比如
string ls_from ="f:\dfgl\dfgl.db" ,ls_to = "c:\dfgl\bak\dfgl.db"
2、删除文件
函数声明:
FUNCTION boolean DeleteFileA(ref string filename) LIBRARY "Kernel32.dll"
调用:
string ls_file
boolean lb_rtn
ls_file = "C:\tmp\111.xls"
lb_rtn = DeleteFileA(ls_file)
MessageBox("文件删除", string(lb_rtn))
或者用PB本身的函数FileDelete()来删除文件。
3、删除只读属性的文件
先定义一个外部API函数用于将文件属性设置为普通(以免原来文件属性为只读不能删除)
FUNCTION ulong SetFileAttributes(ref string lpFileName,ulong dwFileAttributes) LIBRARY "kernel32.dll" ALIAS FOR "SetFileAttributesA"
调用:
integer ret, value
string docname, named
value = GetFileOpenName("Select File", docname, named)
IF value = 1 THEN ret = MessageBox("提示信息", "确实要删除选中的文件吗?", Question!, OKCancel!)
IF ret = 1 THEN
SetFileAttributes(docname, 32)
FileDelete(docname)
End If
如何创建文件夹
函数申明
Function boolean CreateDirectoryA(string lpPathName,string lpSecurityAttributes) Library "kernel32.dll"
程序调用
string ls_pathname, ls_SecurityAttributes
ls_pathname = 'd:\aa'
CreateDirectoryA(ls_pathname,ls_SecurityAttributes)
//string ls_pathname, ls_SecurityAttributes
ls_pathname = 'd:\aa'
setnull(ls_SecurityAttributes)
CreateDirectoryA(ls_pathname,ls_SecurityAttributes)
//删除文件用递归
//既然你的是pb8,那么就用pb8中的函数
string ls_directoryname, ls_file_name, docname, named, ls_delete_file
Long ll_len_full,ll_len_file, ll_rowcount, i
integer li_value
//如果一个文件夹下有文件,那么要先把这些文件删除以后才能删除文件夹
//借助listbox控件得到文件的名字,然后逐一删除文件,最后再删除文件夹
li_value = GetFileOpenName("取文件",docname, named,"所有文件,*.*,")
if li_value = 1 then
ll_len_full = Len(docname)
ll_len_file = Len(named)
ls_directoryname = Left(docname,ll_len_full - ll_len_file)
lb_1.DirList(ls_directoryname + "*.*", 0)
end if
ll_rowcount = lb_1.TotalItems() //文件夹下的文件总数
for i = 1 to ll_rowcount
ls_file_name = lb_1.text(i) //每个文件的名字
ls_delete_file = ls_directoryname + ls_file_name
filedelete(ls_delete_file)
lb_1.settop(i)
next
ls_directoryname = left(ls_directoryname, len(ls_directoryname) - 1)
RemoveDirectory(ls_directoryname) //删除文件夹
//删除文件(文件夹)和创建文件夹分开进行
ls_directoryname = "d:\aa"
CreateDirectory(ls_directoryname) //创建文件夹
//删除文件夹下的文件,删除文件夹,创建文件夹都分开进行
string ls_directoryname, ls_file_name, docname, named, ls_delete_file
Long ll_len_full,ll_len_file, ll_rowcount, i
integer li_value
//如果一个文件夹下有文件,那么要先把这些文件删除以后才能删除文件夹
//借助listbox控件得到文件的名字,然后逐一删除文件,最后再删除文件夹
li_value = GetFileOpenName("取文件",docname, named,"所有文件,*.*,")
if li_value = 1 then
ll_len_full = Len(docname)
ll_len_file = Len(named)
ls_directoryname = Left(docname,ll_len_full - ll_len_file)
lb_1.DirList(ls_directoryname + "*.*", 0)
end if
ll_rowcount = lb_1.TotalItems() //文件夹下的文件总数
for i = 1 to ll_rowcount
ls_file_name = lb_1.text(i) //每个文件的名字
ls_delete_file = ls_directoryname + ls_file_name
filedelete(ls_delete_file)
lb_1.settop(i)
next
//删除文件夹
getfolder('文件夹',ls_directoryname)
RemoveDirectory(ls_directoryname)
//创建文件夹
ls_directoryname = "d:\aa"
CreateDirectory(ls_directoryname)