获取Applescript中文件路径中的所有文件夹 - 所以我可以标记它们

时间:2014-09-05 21:23:29

标签: applescript directory

我有一个可以获取文件对象的AppleScript

我现在想要遍历其路径上方的所有文件夹(每个文件可以向下多个级别)并标记它们的颜色。

到目前为止,我可以看到文件中有一个路径,但我不知道将它强制转换为什么类型(它不是字符串):

copy path of theFile as string to FileNamesPath

如果我可以获得每个文件夹,我可以应用标签/标签使它们成为一种颜色:

tell application "Finder" to set label index of theFolder to 3

如何从文件中获取每个文件夹?

2 个答案:

答案 0 :(得分:0)

如果你有一个像这样的HFS路径的文件或别名对象

alias "Macintosh HD:Users:user:Images:1401711772700.jpg"

file "Macintosh HD:Users:user:Images:1401711772700.jpg"

你可以尝试这个小脚本

tell application "Finder"
    set labelfolder to (choose file) #or insert file object here
    repeat
        set labelfolder to container of labelfolder
        if labelfolder is startup disk then exit repeat
        try #labels are disabled on some folders
            set label index of labelfolder to 3
        end try
    end repeat
end tell

答案 1 :(得分:0)

要获取父文件夹,我使用容器属性。 例如,我们在桌面上找到一个文件:

  

- >文件夹"桌面"文件夹" USERNAME"文件夹"用户"启动盘

要使用此输出,我将其更改为别名:

  

- >别名" Macintosh HD:用户:USERNAME:桌面"

通过重复循环,我获得所有父文件夹。为了阻止你一个stopFolder变量。在这种情况下是用户文件夹。

tell application "Finder"
    set stopFolder to POSIX path of the (path to the users folder)
    set labelFolder to (choose file) 
    set lastParentFolder to (container of labelFolder as alias)
    repeat
        if POSIX path of lastParentFolder = stopFolder then return "ready"
        label index of lastParentFolder # get label index
        set label index of lastParentFolder to 3 # set new label index
        set lastParentFolder to (container of lastParentFolder as alias)
    end repeat
end tell

  

获取标签索引

行仅用于显示协议中的原始标签索引。