How does 'Create Folder' give its result?
Richard Gaskin
ambassador at fourthworld.com
Thu Mar 16 14:21:49 EST 2006
Graham Samuel wrote:
> I have a path in a variable say myPath, and I execute
>
> create folder myPath
>
> sometimes the folder can't be created (if the directory is protected
> etc) and if I execute the above in the message box in these
> circumstances, I see the text
>
> can't create that directory
>
> But if I do this by script, this text doesn't seem to be in 'the
> result' or in 'it' (which appears to contain 'OK' even if the create
> hasn't worked), so where is this text - ? The 2.7.0 docs (dictionary
> and PDF) are silent on the matter. As 'create' is not a function, I
> don't see any other way for it to return a value.
>
> Clearly I can produce a workaround by checking if the folder exists
> immediately after trying to create it, but how does 'create' show its
> result"?
That's the easy part, "the result":
create folder myPath
if the result is not empty then
answer the result
exit to top
end if
The hard part is determining exactly what went wrong. When a file or
folder creation error happens, in most cases all the result says is
"can't create file" or "can't create folder" with no further
explanation. How do you advise your users?
The trick is the sysError function, which queries the OS to obtain the
specific error code associated with the failure. So you could do
something like:
create folder myPath
if the result is not empty then
answer the result &" (" sysError() &")"
exit to top
end if
That'll give you a specific error code:
can't create directory (43)
That at least allows your users to give you an error code number when
they call your tech support line, but I'm a big fan of reducing those
calls altogether when I can, and that means finding out the meaning of
all the OS error codes for each supported platform, and building in a
lookup table to present more meaningful info to the user.
A while back I posted a request for pointers to those codes:
<http://mail.runrev.com/pipermail/use-revolution/2006-February/076890.html>
I've turned up some, but I have too many for Win32 and very few for OS
X. While I winnow the Win list down to a manageable subset of common
culprits, if someone out there has a link to OS X error codes I'd
certainly appreciate it, and show that appreciation with a modest
library to make those lookups.
--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
More information about the use-livecode
mailing list