Mr. Howard
Mr. Howard

Reputation: 347

AppleScript error when trying to copy home folder to shared drive

So, i'm working on a script that copies the home folder to a mounted shared drive folder. But i'm getting the following error:

"Handler can't handle objects of this class number -10010"

This is the code I came up with following the example of other code i've seen on here. I'm guessing that it is the way i'm telling finder to duplicate.

set vserver to ("/Volumes/sharedfolder")
set source to ("/Users/user")

tell application "Finder"
    duplicate source to vserver
end tell

How else can I write this?

I've also tried running a boolean test to see if Finder saw the shared folder or my home folder and it retured false. (but only one false when it should have returned two)

tell application "Finder"
    setaBoolean1 to get (exists vserver)
    setaBoolean1 to get (exists source)

end tell

Upvotes: 2

Views: 835

Answers (1)

NSGod
NSGod

Reputation: 22948

set vserver to ("/Volumes/sharedfolder")

The line above sets the variable vserver to a string object consisting of "/Volumes/sharedfolder". Likewise, the set source to "/Users/user" line sets source to a string object containing "/Users/user". Note that strings are not what the Finder is expecting when you're telling it to duplicate items.

The tell app Finder line is basically trying to tell the Finder to duplicate one string into another string, which it doesn't know how to do (hence the Handler can't handle objects of this class message).

What you need to do is to, instead of creating strings, create some sort of file system reference to those folders, so that the Finder knows how to deal with them.

There are numerous ways to do this, but the method I found that works (which uses the same POSIX style path format) is the following:

set vserver to POSIX file "/Volumes/sharedfolder"
set source to POSIX file "/Users/user"

tell application "Finder"
    duplicate source to vserver
end tell

Upvotes: 3

Related Questions