使文件夹隐藏和取消隐藏

时间:2013-11-09 13:13:03

标签: applescript hide show directory

我正在尝试创建一个命令来隐藏和显示我的桌面上的文件夹这是我目前为止在AppleScript中的代码:

on run
    if "chflags hidden ~/Desktop/*" then
        do shell script "chflags nohidden ~/Desktop/*"
    else
        do shell script "chflags hidden ~/Desktop/*"
    end if
end run

请你找到问题和帮助 谢谢

2 个答案:

答案 0 :(得分:0)

该命令似乎按预期工作。我用桌面上的文件夹测试了它,所以

chflags hidden ~/Desktop/testDir/*
chflags nohidden ~/Desktop/testDir/*

完成这项工作。

你的if语句不起作用。

if "chflags hidden ~/Desktop/*" then

这没有任何作用。即使您要添加缺少的“do shell脚本”:

if (do shell script "chflags hidden ~/Desktop/testDir/*") then

这实际上会隐藏所有内容(此时您不想要的内容)并且它不会返回任何内容并且会生成AppleScript-Error。

所以你必须寻找另一种方法来检查隐藏状态。

以下是执行此操作的代码示例:

tell application "System Events"
    set filePath to file (((path to desktop) as text) & "myReferenceFile.txt")
end tell

set this_info to info for filePath
if visible of this_info is true then
    log "VISIBLE"
else
    log "INVISIBLE"
end if

如果您有参考文件,可以使用该路径检查它是否隐藏。

答案 1 :(得分:0)

您可以使用以下内容切换标记:

property hideFolders : true

if hideFolders then
    do shell script "find ~/Desktop/* -type d -maxdepth 1 -exec chflags hidden {} +"
    set hideFolders to false
else
    do shell script "find ~/Desktop/* -type d -maxdepth 1 -exec chflags nohidden {} +"
    set hideFolders to true
end if