0

I have been making a simple script for my sister, but it does not work. It calls for an integer? I did not specify it in my program, but it calls it anyway?

activate
display dialog "Click Start to start importing your own kindle books!" with title "Kindle Book Uploader by Jeremy Zhang" buttons {"Cancel", "Start"} default button "Start"

property documentFolder : "documents"

tell application "Finder" to (get name of every disk whose ejectable is true)
try
    set kindleLocation to ¬
                ((choose from list result with prompt "Select your Kindle from the list:") as text)
end try

try
      set bookFiles to ¬
                ((choose file with prompt ¬
                          "Select kindle files to import:" of type {"public.html", "public.rtf", "com.microsoft.word.doc", "public.data.mobi", "public.plain-text", "com.adobe.pdf"} with multiple selections allowed) as text)
end try

display dialog "Please wait while the application copies the kindle books..." with title "Kindle Book Uploader by Jeremy Zhang"

tell application "Finder"
      if not (exists folder documentFolder of kindleLocation) then
  make new folder at kindleLocation with properties {name:documentFolder}
      end if
end tell

set fullKindlePath to POSIX path of (kindleLocation as alias) & "documents"

tell application "Finder"
 move (bookFiles) to fullKindlePath
end tell

display dialog "Process has been done! Please eject your kindle and the files will be on the home screen of your Kindle." with title "Kindle Book Uploader by Jeremy Zhang"

And the result from running it:

tell current application
 activate
end tell
tell application "AppleScript Editor"
 display dialog "Click Start to start importing your own kindle books!" with title "Kindle Book Uploader by Jeremy Zhang" buttons {"Cancel", "Start"} default button "Start"
  --> {button returned:"Start"}
end tell
tell application "Finder"
 get name of every disk whose ejectable = true
  --> {"JEREMY DISK"}
end tell
tell application "AppleScript Editor"
 choose from list {"JEREMY DISK"} with prompt "Select your Kindle from the list:"
  --> {"JEREMY DISK"}
 choose file with prompt "Select kindle files to import:" of type {"public.html", "public.rtf", "com.microsoft.word.doc", "public.data.mobi", "public.plain-text", "com.adobe.pdf"} with multiple selections allowed
  --> {alias "Macintosh HD:Users:JeremyZhang:Downloads:5 ETS SAT S.pdf"}
 display dialog "Please wait while the application copies the kindle books..." with title "Kindle Book Uploader by Jeremy Zhang"
  --> {button returned:"OK"}
Result:
error "Can’t make \"documents\" into type integer." number -1700 from "documents" to integer

What am I doing wrong?
AppleScript Editor 2.5 (138)
AppleScript 2.2.3

1

The joys of variable typing in AppleScript. I think that your problem is in the line

set fullKindlePath to POSIX path of (kindleLocation as alias) & "documents"

I would try changing this to

set fullKindlePath to (the POSIX path of (kindleLocation as alias)) & "documents"

then if that doesn't work try & ("documents" as POSIX PATH)

By the way, are you sure that fullKindlePath has a '/' at the end?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .