Why is my applescript for checking if a file exists failing? I have an applescript application that inputs a username and starts a download based on that username. In the app I use the code below to check if a file exists already and then rename the file if it does.

tell application "Finder"
if exists "~/Downloads/Conversion/" &amp; cbUsername &amp; ".flv" as POSIX file then
    set x to 1
    repeat
        set newCbFilename to cbUsername &amp; "_" &amp; x as string
        if exists "~/Downloads/Conversion/" &amp; newCbFilename &amp; ".flv" as POSIX file then
            set x to x + 1
        else
            exit repeat
        end if
    end repeat
    copy newCbFilename to finalCbFilename
    display dialog "Filename already exists " &amp; "File will be named: " &amp; finalCbFilename &amp; ".flv" buttons "OK" default button "OK" with title "Error" with icon caution
else
    copy cbUsername to finalCbFilename
end if
end tell


All of a sudden yesterday it stopped working correctly. I had added the following code to ensure that the folder I was saving to existed.

tell application "System Events"
if not (exists folder "~/Downloads/Conversion") then
    do shell script "mkdir ~/Downloads/Conversion"
end if


Even when I comment out that code now it still doesn't work. What did I do wrong?
    end tell
It looks like the Finder needs the absolute path to the home folder instead of the relative path. Instead of starting the path with ~/, it needs to start with /Users/username/.

Instead of hardcoding the username into the script, you can have AppleScript build the absolute path on the fly:

set homePath to POSIX path of (path to home folder)


Then you can replace "~/ with homePath &amp; " 

For example:

if exists "~/Downloads/Conversion/" &amp; cbUsername &amp; ".flv" as POSIX file then


would become

if exists homePath &amp; "Downloads/Conversion/" &amp; cbUsername &amp; ".flv" as POSIX file then


Alternatively, if you only use ~ with the path ~/Downloads/Conversion/, you could instead change that whole path to a variable:

set cbPath to POSIX path of (path to home folder) &amp; "Downloads/Conversion/"


Then the final script would be:

set cbPath to POSIX path of (path to home folder) &amp; "Downloads/Conversion/"

tell application "Finder"
    if exists cbPath &amp; cbUsername &amp; ".flv" as POSIX file then
        set x to 1
        repeat
            set newCbFilename to cbUsername &amp; "_" &amp; x as string
            if exists cbPath &amp; newCbFilename &amp; ".flv" as POSIX file then
                set x to x + 1
            else
                exit repeat
            end if
        end repeat
        copy newCbFilename to finalCbFilename
        display dialog "Filename already exists " &amp; "File will be named: " &amp; finalCbFilename &amp; ".flv" buttons "OK" default button "OK" with title "Error" with icon caution
    else
        copy cbUsername to finalCbFilename
    end if
end tell