' ============================================================== ' ' QSHFileOperation component - version 1 January 2002 ' ' Marcin Szafran ' ' Implemented API SHFileOperation function. ' ' Allows copy, rename, delete and move files and folders ' ' with wildcard and recursivly... and much more! ' ' ***** BE CAREFULL WITH DELETE AND RECURSE! ***** ' ' Thanks for Jacques Philippe for his help ' ' ============================================================== ' '= QSHFileOperation methods description ================== '--- Copying --- ' .CopyEx: Copying with extended attributes ' .Copy: Simple copying ' Usage ObjName.CopyEx(ExistingFileName(s),SourceFileName(s),flags,handle) ' ObjName.Copy(ExistingFileName(s),SourceFileName(s)) ' RQ keyword: - (none) '--- Moving and Renaming --- ' .MoveEx: Moving with extended attributes ' .Move: Simple moving ' .RenameEx: Renaming with extended attributes ' .Rename: Simple renaming ' Usage ObjName.MoveEx(ExistingFileName(s),SourceFileName(s),flags,handle) ' ObjName.Move(ExistingFileName(s),SourceFileName(s)) ' ObjName.RenameEx(ExistingFileName(s),SourceFileName(s),flags,handle) ' ObjName.Rename(ExistingFileName(s),SourceFileName(s)) ' RQ keyword: RENAME (does not work with dirs) '--- Deleting --- ' .DeleteEx: Deleting with deleting confirmation on/off and other extended attributes - enables delete to Recycle Bin ' .Delete: Simple deleting with deleting confirmation on/off - enables delete to Recycle Bin ' Usage ObjName.DeleteEx(FileName(s),to_Bin_on/off,confirm_on/off,flags,handle) ' ObjName.Delete(FileName(s),to_Bin_on/off,confirm_on/off) ' RQ keyword: KILL (does not work with dirs) '= QSHFileOperation properties description =============== ' .DefaultFlagsEx: Setting default flags for methods with extended attributes (.MethodNameEx) - now = 0 ' .DefaultFlags: Setting default flags for simple methods (.MethodName) ' I hope that parameters names are clear Function CopyEx (dSHfoFrom As String, dSHfoTo As String, _ SHfoFlags As Integer, SHfoHandle As Long) As Long Function Copy (dSHfoFrom As String, dSHfoTo As String) As Long Function MoveEx (dSHfoFrom As String, dSHfoTo As String, _ SHfoFlags As Integer, SHfoHandle As Long) As Long Function Move (dSHfoFrom As String, dSHfoTo As String) As Long Function RenameEx (dSHfoFrom As String, dSHfoTo As String, _ SHfoFlags As Integer, SHfoHandle As Long) As Long Function Rename (dSHfoFrom As String, dSHfoTo As String) As Long Function DeleteEx (dSHfoFrom As String, SHfoToBin As Integer, SHConfirm As Integer, _ SHfoFlags As Integer, SHfoHandle As Long) As Long Function Delete (dSHfoFrom As String, SHfoToBin As Integer, SHConfirm As Integer) As Long '= CONSTANTS ============================================= '--- Operations --- Const foMove = &H1 ' Move the files specified in pFrom to the location specified in pTo Const foCopy = &H2 ' Copy the files specified in the pFrom member to the location specified in the pTo member Const foDelete = &H3 ' Delete the files specified in pFrom Const foRename = &H4 ' Rename the file specified in pFrom. You cannot use this 'flag to rename multiple files with a single function call. Use FO_MOVE instead '--- Flags - should be set with OR operator if used more than one --- '--- Constants names were changed to RapidQ kind -------------------- Const fofAllowUndo = &H40 ' Preserve Undo information, if possible. If pFrom 'does not contain fully qualified path and file names, this flag is ignored Const fofConfirmMouse = &H2 ' Not currently used Const fofFilesOnly = &H80 ' Perform the operation on files only if a wildcard 'file name (*.*) is specified Const fofMultiDestFiles = &H1 ' The pTo member specifies multiple destination 'files (one for each source file) rather than one directory where all source 'files are to be depos Const fofNoConnectedElements = &H2000 ' Do not move connected files as a group. 'Only move the specified files Const fofNoConfirmation = &H10 ' Respond with Yes to All for any dialog box that is displayed Const fofNoConfirmMkDir = &H200 ' Do not confirm the creation of a new directory if the operation requires one to be created Const fofNoCopySecurityAttribs = &H800 ' Do not copy the security attributes of the file Const fofNoErrorUI = &H400 ' Do not display a user interface if an error occurs 'Const fof_RecurseReparse = ' Recurse into reparse points. The default is to not recurse 'Const fof_NoRecurseReparse = ' Treat reparse points as objects, not containers. 'You must set _WIN32_WINNT to 5.01 or later to use this flag Const fofNoRecursion = &H1000 ' Only operate in the local directory. Don't operate recursively into subdirectories Const fofRenameOnCollision = &H8 ' Give the file being operated on a new name in 'a move, copy, or rename operation if a file with the target name already exists Const fofSilent = &H4 ' Do not display a progress dialog box Const fofSimpleProgress = &H100 ' Display a progress dialog box but do not show the file names 'Const fofWantMappingHandle = &H20 ' If FOF_RENAMEONCOLLISION is specified and 'any files were renamed, assign a name mapping object containing their old and new names to the hNameMappings member Const fofWantNukeWarning = &H4000 ' Send a warning if a file is being destroyed 'during a delete operation rather than recycled. This flag partially overrides FOF_NOCONFIRMATION