如何在桌面上创建文件夹并使用AppleScript在其中移动已删除的文件?

时间:2011-04-01 15:25:22

标签: zip applescript directory ipa

我想制作一个Applescript。我想删除它上面的文件(.app文件),而不是应该在与删除的文件相同的目录中创建一个名为“Payload”的文件夹。它应该将已删除的文件复制到Payload文件夹。现在应该压缩Payload文件夹。应该将扩展名从.zip更改为.ipa。现在,.ipa文件应重命名为droppped文件所具有的文件名。最后它应删除已创建的文件夹(如果尚未删除),也应删除已删除的项目。

我该怎么做?

非常感谢。

不明白吗?请发表评论。 :)

3 个答案:

答案 0 :(得分:1)

首先,我假设您使用tell application "Finder"步骤为Finder编写脚本。如果是这种情况,请查看Finder字典中的move命令以移动文件,并delete删除文件。

关于压缩,当我需要使用AppleScript压缩文件时,我发现使用带有do shell script的命令和zip命令行工具(在终端窗口中输入man zip)或者看看the online man page)。

如果您不熟悉movedeletedo shell script,请查看适用于Finder的AppleScript字典(适用于movedelete以及标准脚本添加(适用于do shell script)。

答案 1 :(得分:0)

结合Chuck的回答,你可以用Folder Actions来完成这个......

答案 2 :(得分:0)

您可以通过文件夹操作来完成此操作

首先,创建您的文件夹。

Puis,编写此AppleScript

on adding folder items to theAttachedFolder after receiving theNewItems
-- Get the name of the attached folder
tell application "Finder"
    set theName to name of theAttachedFolder

    -- Count the new items
    set theCount to length of theNewItems

    -- Display an alert indicating that the new items were received
    activate
    display alert "Attention!" message (theCount & " new items were detected in folder " & (quoted form of theName) & "." as string)

    -- Loop through the newly detected items
    repeat with anItem in theNewItems

        -- Process the current item

        -- Move the current item to another folder so it's not processed again in the future

    end repeat
end tell
end adding folder items to

将文件夹操作添加到文件夹的说明:

Watching Folders Instructions

或者在Automator中,您可以使用以下代码添加AppleScript,您只需要为放置在targetFolder中的文件夹从automator中设置一个变量并将其返回给AppleScript。

set theFolder to "Folder_child:Folder_Grandchild:Folder_Great-Grandchild"
set theNewFolder to "Folder_First_Great_Grandchild"

if FolderExists(theFolder) = true then

    --display dialog "Exists " & theFolder & " !"
    --delete the file
else

    --display dialog "Missing " & theFolder & " !"
    -- do nothing or something else
end if

--handler for checking if exists theFolder/thePath

on FolderExists(theFolder) -- (String) as Boolean
    tell application "System Events"
        if exists folder theFolder then
            return true
        else
            return false
        end if
    end tell
end FolderExists

这就是我现在找到的全部。

最诚挚的问候