VB 复制文件的问题????
Dim Fso As FileSystemObject
Set Fso = CreateObject( "Scripting.FileSystemObject ")
Fso.CopyFile Me.CommonDialog.FileName, App.Path & "\FileList "
提示拒绝的权限,是什么问题啊????
请高人解答!
[解决办法]
Private Const FO_COPY = &H1
Private Const FO_DELETE = &H3
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_SILENT = &H4
Private Const FOF_NOERRORUI = &H400
Private Declare Function SHFileOperation Lib "shell32.dll " Alias "SHFileOperationA " (lpFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String ' only used if FOF_SIMPLEPROGRESS
End Type
Public Function CopyFile(ByVal sSourceFile As String, ByVal sDestFile As String) As Boolean
Dim udtPath As SHFILEOPSTRUCT
udtPath.hWnd = 0
udtPath.wFunc = FO_COPY
udtPath.pFrom = sSourceFile
udtPath.pTo = sDestFile
udtPath.fFlags = FOF_NOCONFIRMATION
CopyFile = Not CBool(SHFileOperation(udtPath))
End Function
Private Sub Command1_Click()
CopyFile "E:\disk1\ISO\WINXPSP2.GHO ", "D:\ " 测试复制
End Sub
-------------------------------------
顺便补上一问:
如何实现用自己的进度条,显示当前复制进度???
[解决办法]
顺便补上一问:
如何实现用自己的进度条,显示当前复制进度???
//
那就不能使用CopyFile函数,而要使用CopyFileEx函数,再注册一个回调过程,在这个过程里可以得到详细的复制报告:
CopyFileEx
The CopyFileEx function copies an existing file to a new file. This function preserves extended attributes, OLE structured storage, NTFS alternate data streams, and file attributes. Security attributes for the existing file are not copied to the new file.
BOOL CopyFileEx(
LPCWSTR lpExistingFileName,
// pointer to name of an existing file
LPCWSTR lpNewFileName,
// pointer to filename to copy to
LPPROGRESS_ROUTINE lpProgressRoutine,
// pointer to the callback function
LPVOID lpData, // to be passed to the callback function
LPBOOL pbCancel, // flag that can be used to cancel the operation
DWORD dwCopyFlags // flags that specify how the file is copied
);
Parameters
lpExistingFileName
Pointer to a null-terminated string that specifies the name of an existing file.
lpNewFileName
Pointer to a null-terminated string that specifies the name of the new file.
lpProgressRoutine
Specifies the address of a callback function of type LPPROGRESS_ROUTINE that is called each time another portion of the file has been copied. This parameter can be NULL. For more information on the progress callback function, see CopyProgressRoutine.
lpData
Specifies an argument to be passed to the callback function. This parameter can be NULL.
pbCancel
Pointer to a Boolean variable that can be used to cancel the operation. If this flag is set to TRUE during the copy operation, the operation is canceled.
dwCopyFlags
Specifies how the file is to be copied. This parameter can be a combination of the following values: Value Meaning
COPY_FILE_FAIL_IF_EXISTS The copy operation fails immediately if the target file already exists.
COPY_FILE_RESTARTABLE Progress of the copy is tracked in the target file in case the copy fails. The failed copy can be restarted at a later time by specifying the same values for lpExistingFileName and lpNewFileName as those used in the call that failed.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information call GetLastError.