AppleScript for changing prefix and automatically upload to ftp when file is copied to folder

北战南征 提交于 2019-12-12 06:32:46

问题


I am programing an AppleScript that allows me to automatically put a prefix to a file and upload it to an ftp-server when it is copied to a specific folder (used as a folder action under OS X El Capitan).

What I get to work is that the file is automatically uploaded, but when I try to implement that it should add a prefix (specifically a unix timestamp), it won't change either the filename nor uploading it to the ftp-directory.

Here is my code as it is now:

property uploadftp : "ftp://user:password«ftpxyz.de/directory/" --this will be changed to the real one
set nowSeconds to ((current date) - (date ("1/1/1970")) - (time to GMT)) as miles as string
set timestamp to nowSeconds & "_"
set Tag to timestamp
on adding folder items to this_folder after receiving added_items
    set thelist to ""
    repeat with i in added_items
        set thelist to thelist & return & i & ","
        try
            set theFiles to thelist
            repeat with aFile in theFiles
                set name of aFile to Tag & name of aFile
            end repeat
            do shell script "curl -T " & quoted form of POSIX path of i & space & quoted form of uploadftp
        on error e number n
            display dialog "Error: " & e & "Number: " & n
        end try
    end repeat
    display dialog "Dateien empfangen: " & (count added_items) & return & "Ordner: " & POSIX path of this_folder & return & "Dateien: " & thelist
end adding folder items to

回答1:


I doubt that the script works at all.

The main issue is that code outside the event handler won't be executed at runtime.

Try this:

property uploadftp : "ftp://user:password«ftpxyz.de/directory/" --this will be changed to the real one

on adding folder items to this_folder after receiving added_items

    set timestamp to ((current date) - (date ("1/1/1970")) - (time to GMT)) as miles as string

    set thelist to {}
    repeat with aFile in added_items
        try
            set fileName to name of (info for aFile)
            set newFileName to timestamp & "_" & fileName
            set end of thelist to fileName
            do shell script "curl -T " & quoted form of POSIX path of aFile & space & quoted form of (uploadftp & newFileName)
        on error e number n
            display dialog "Error: " & e & "Number: " & n
        end try
    end repeat
    set saveTID to AppleScript's text item delimiters
    set AppleScript's text item delimiters to ","
    set receivedFiles to thelist as text
    set AppleScript's text item delimiters to saveTID
    display dialog "Dateien empfangen: " & (count added_items) & return & "Ordner: " & POSIX path of this_folder & return & "Dateien: " & receivedFiles
end adding folder items to


来源:https://stackoverflow.com/questions/36912692/applescript-for-changing-prefix-and-automatically-upload-to-ftp-when-file-is-cop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!