Moving a File
dave at looktowindward.com
Wed Mar 7 07:16:30 CST 2007
On 7 Mar 2007, at 12:20, Marielle Lange wrote:
>> I agree I wouldn't want a dialog box either, but it would be good
>> if it either just refused to delete the file silently, returned an
>> error code and/or threw an an exception that could be "caught".
> if there is a file tTargetFile then
> throw "the file already exists" -- replace by a more appropriate
> error message
> rename file tSourceFile to tTargetFile
> end if
Well that will work unless of course the target file just happens to
be a Mac OS X bundle file. Then of course it won't work at all.
Also note that the "file" keyword above is incorrect. The "rename"
command does not follow the same syntax as "delete file" and since
rename works on folders too you'd have to use the a "folder" keyword
> I expect you to tell me: If this is that simple,
It's not that simple to do in RunRev, see above, it would much
simpler and straight forward implemented inside RunRev.
> why didn't they code it like this?
God Knows! But I have a clue. See below!
> Because sometimes you want the ability to overwrite the file
> without an error to be thrown.
Why would you want to do this when there is a delete file function?
Also it's just as simple (or not so simple) to do this:
if there is a file tTargetFile then
delete file iTargetFile
rename tSourceFile to tTargetFile
This way if you don't explicitly delete the file you will get an
error. This is a much safer and better way of doing things.
> The responsibility to check for file existence is therefore left to
> the programmer so to give him more flexibility.
I disagree. It doesn't give any more flexibility since there are
other ways to do it that are far less dangerous. But I really don't
think that "flexibility" had anything to do with how this command
works. I think it was one or more of the following:
1. They couldn't be bothered to do it properly.
2. They didn't have enough time to do it properly
3. They thought that the so called purity of Unix Commands should be
brought into RunRev or whatever it was called then.
4. It was easier to do it like this.
5. They didn't realize it did overwrite the file.
> Sure, a warning in the docs of the like "if the file exists, it
> will be overwitten" could be added.
I agree, at the very least this should be done.
Are you seriously telling us that you believe that the way that the
"rename" works is a good way to implement a "rename" function in a
high level programming environment aimed at novice programers?
All the Best
More information about the use-livecode