Administrators Jon Posted January 28, 2004 Administrators Posted January 28, 2004 OK, I'm sick of these functions now. Everyone has a different take on if they work or not. And a lot of that code is getting pretty cryptic too. So it's total rewrite time. To reduce the number of flags required and to mirror the VBScript-ish methods the commands to be split like this: FileCopy FileDelete FileMove DirCopy DirMove DirRemove Methods of doing: 1. SHFileOperation - this is by far the easiest and after looking at VBScript it is the underlying method used there. It just takes a few lines to perform a DirCopy... The odd thing about these operations is that you can only have wildcards in the source path. Which is odd and a little annoying. 2. Custom wildcards and directory parsing like the current. Lots of code. Tends to have lots of "weirdness" like the current. Plus point for number 2 is that there can be limited wildcards in the dest. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/
cmallett Posted January 29, 2004 Posted January 29, 2004 Tough call. I've done a lot of rename programs and copy/move programs, and it does take a lot of code to handle all the exceptions (root directories, target is a folder not a wildcard pattern, source file is overwriting a target directory, etc.) I didn't even know about SHFileOperation, it sounds interesting. I never saw much use for having wildcards in the destination parameter (other than to rename files, of course). Coming from both a Unix and Windows background, to me that seems a little atypical. Instead, I'm used to destinations being pure directories or drives. Perhaps FileRename should be made a separate command from FileMove. That might simplify things: Use SHFileOperation for FileMove and do some custom (but simple) code for FileRename.
jlandes Posted January 29, 2004 Posted January 29, 2004 You mean I can have a Deltree like command? Yay! Thanks Jon, that will make my TempCleaner (Temperary Files Cleaner) program work much better with less code. Sincerely yours,Jeremy Landesjlandes@landeserve.com
Nutster Posted January 29, 2004 Posted January 29, 2004 You mean I can have a Deltree like command? Yay! Thanks Jon, that will make my TempCleaner (Temperary Files Cleaner) program work much better with less code. That's what DirRemove("Path", 1) is supposed to do, ever since I wrote it , around version 3.0.60, I think. The 1 as a second argument to the function says to recurse to all appropriate subdirectories. David NuttallNuttall Computer Consulting An Aquarius born during the Age of Aquarius AutoIt allows me to re-invent the wheel so much faster. I'm off to write a wizard, a wonderful wizard of odd...
jpm Posted January 29, 2004 Posted January 29, 2004 I don't know what will the final functions and perhaps the exact limit of the today ones.Basically I want to use - wildcards - dir in files meaning dir\*.* - manage the overidding, already is different from success - recurse on subdir - to renaming instead of copying when possibleI try to do it int the dbg-bastard stuff and that what I didDirCreate("path") change in return -1 already 1 a file of same name 2 invalid name FileCopy("source", "dest" [,flag] ) - allow "source" and "dest" to be dir's equivalent to source\*.*, dest\*.* - source\<wildcard> dest equivalent to dest\*.* - source\*.xxx dest\*.yyyFileDelete("source") - allow "source to be a dir equivalent to source\*.*FileMove("source", "dest" [,flag] ) - Flag added to overwrite or not as in FileCopy - allow "source" and "dest" to be dir's (can be different drives) . if overwrite is used the subdir's will be moved to in fact no copy is done under WIN32_NT OsType if "source" and "dest" are on the same drive just a rename - same wilcard handling as in FileCopy
Administrators Jon Posted January 29, 2004 Author Administrators Posted January 29, 2004 Tough call. I've done a lot of rename programs and copy/move programs, and it does take a lot of code to handle all the exceptions (root directories, target is a folder not a wildcard pattern, source file is overwriting a target directory, etc.)I didn't even know about SHFileOperation, it sounds interesting.I never saw much use for having wildcards in the destination parameter (other than to rename files, of course). Coming from both a Unix and Windows background, to me that seems a little atypical. Instead, I'm used to destinations being pure directories or drives.Perhaps FileRename should be made a separate command from FileMove. That might simplify things: Use SHFileOperation for FileMove and do some custom (but simple) code for FileRename.I didn't know about SHFileOperation either until I looked more closely at the FileRecycle code. Problem is I quite often do things like copy *.au3 *.au3.bak (same with move). And if you look through some VBScript posts there is always someone bitching about the lack of wildcards.. I may use SHFile to do a CopyDir/MoveDir (with all the recursion nonsense) and then a combined custom routine for FileCopy/FileMove that supports simple wildcards but no recursion. That might work. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/
jpm Posted January 29, 2004 Posted January 29, 2004 I am OK with norecursion if wildcard I think recursion is only need if the renaming is not working as in the cross drive operation. Good luck
trunc.ate Posted January 29, 2004 Posted January 29, 2004 That's what DirRemove("Path", 1) is supposed to do, ever since I wrote it , around version 3.0.60, I think. The 1 as a second argument to the function says to recurse to all appropriate subdirectories Yeah, but how can I remove directories I don't know the names in advance without killing the container itself? jlandes mentioned the TEMP-dir which is the best example: DirRemove("c:\temp", 1) deletes the TEMP directory, too. I could recreate it afterwards but letting the system point to a temp-dir that not exists (even for a second) makes me nervous.
Administrators Jon Posted January 29, 2004 Author Administrators Posted January 29, 2004 Well SHFileOp is way too unpredictable under 9x. Grrr. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/
jpm Posted January 29, 2004 Posted January 29, 2004 Well SHFileOp is way too unpredictable under 9x. Grrr.perhaps you will reach something as my implementation
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now