|
-
Apr 21st, 2006, 11:58 PM
#1
Thread Starter
Hyperactive Member
[RESOLVED] Need help to modify copy file function
Hi all,
Here is the code I have to copy the file:
VB Code:
Option Explicit
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
End Type
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_NOCONFIRMATION = &H10
Private Const FO_COPY = &H2
Public Function ShellFileCopy(src As String, dest As String, Optional NoConfirm As Boolean = False) As Boolean
'PURPOSE: COPY FILES VIA SHELL API
'THIS DISPLAYS THE COPY PROGRESS DIALOG BOX
'PARAMETERS: src: Source File (FullPath)
'dest: Destination File (FullPath)
'NoConfirm (Optional): If set to true, no confirmation box is displayed when overwriting
'existing files, and no copy progress dialog box is displayed.
'Returns (True if Successful, false otherwise)
'EXAMPLE:
'dim bSuccess as boolean
'bSuccess = ShellFileCopy ("C:\MyFile.txt", "D:\MyFile.txt")
'bSuccess = ShellFileCopy ("C:\MyFile.txt", "D:\MyFile.txt", False)
Dim WinType_SFO As SHFILEOPSTRUCT
Dim lRet As Long
Dim lflags As Long
lflags = FOF_ALLOWUNDO
If NoConfirm Then lflags = lflags & FOF_NOCONFIRMATION
With WinType_SFO
.wFunc = FO_COPY
.pFrom = src
.pTo = dest
.fFlags = lflags
End With
lRet = SHFileOperation(WinType_SFO)
ShellFileCopy = (lRet = 0)
End Function
Private Sub Form_Load()
Dim bsuccess As Boolean
bsuccess = ShellFileCopy("C:\Temp\Excel[1].zip", "C:\Temp\Excel[2].zip", False)
End Sub
What I want to do is to modify this function to copy the file with animated progress and overwrite the existing file by default.
Thanks,
Kanna.
-
Apr 22nd, 2006, 01:01 AM
#2
Re: Need help to modify copy file function
Just OR these two flags.
VB Code:
Private Const FOF_NOCONFIRMMKDIR As Long = &H200 'For folder copies with sub directories.
Private Const FOF_SIMPLEPROGRESS As Long = &H100 'Animated progress dialog
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
-
Apr 22nd, 2006, 01:30 AM
#3
Lively Member
Re: Need help to modify copy file function
not sure if it helps you any, but it may be of interest.
copyfile win32api function:
VB Code:
Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
use:
VB Code:
value& = 1
c0py& = CopyFile("C:\Junk(1).txt","C:\Junk(2).txt",value&)
here value& is defined as true(non zero), and will not overwrite an existing file. if defined as 0, it will. c0py& will return zero on failure, nonzero on success, and sets GetLastError api. while it doesn't provide animated progress, it is very quick.
-
Apr 22nd, 2006, 02:54 AM
#4
Thread Starter
Hyperactive Member
Re: Need help to modify copy file function
Hi Rob,
I can't get you. where I have to change in my code?
Hi ghettohacker,
I have your function already. i want to show the animation progress at the same time i don't like to ask the user to replace the existing file.
thanks,
Kanna
-
Apr 22nd, 2006, 04:22 AM
#5
Re: Need help to modify copy file function
The APIs we are using are the same ones that Windows uses when it displays the file copy progress dialog.
Try adding the costs like so.
VB Code:
.fFlags = lflags OR FOF_SIMPLEPROGRESS OR FOF_NOCONFIRMMKDIR 'If your copying folders.
'Or another option...
.fFlags = lflags OR FOF_SIMPLEPROGRESS 'For only showing the progressbar dialog.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|