我实际上有两个问题。
当我尝试在文件夹中获取文件时,如何排除.DS_STORE,Icon等隐藏文件?我已经尝试过“没有隐形人”,但它似乎没有用。
如果已经存在,如何将var the_new_folder设置为现有文件夹?
感谢您的回答。
我的代码:
--
-- Get all files in a selected folder
-- For each file, create a folder with the same name and put the file in
--
tell application "Finder"
set the_path to choose folder with prompt "Choose your folder..."
my file_to_folder(the_path)
end tell
on file_to_folder(the_folder)
tell application "Finder"
-- HELP NEEDED HERE
-- HOW TO EXCLUDE HIDDEN FILES (Like Icon, .DS_STORE, etc)
set the_files to files of the_folder
repeat with the_file in the_files
-- Exclude folder in selection
if kind of the_file is not "Folder" then
set the_path to container of the_file
set the_file_ext to name extension of the_file
-- Remove extension of the file name
set the_file_name to name of the_file as string
set the_file_name to text 1 thru ((offset of the_file_ext in (the_file_name)) - 2) of the_file_name
-- Make the new folder with the file name
try
set the_new_folder to make new folder at the_path with properties {name:the_file_name}
on error
-- HELP NEEDED HERE
-- HOW TO SET the_new_folder AS THE EXISTING FOLDER
end try
-- Move the file in the new folder
move the_file to the_new_folder
end if
end repeat
end tell
end file_to_folder
tell application "Finder"
(display dialog ("It's done!") buttons {"Perfect!"})
end tell
使用System Events
上下文代替Finder
:
绕过AppleShowAllFiles
偏好设置问题[1]
通常要快得多。
在上下文中使用/对象的visible
属性可以使您可预测地确定所有项目,包括隐藏的项目(默认情况下)或仅可见的项目(带有):file
folder
System Events
whose visible is true
# Sample input path.
set the_path to POSIX path of (path to home folder)
tell application "System Events"
set allVisibleFiles to files of folder the_path whose visible is true
end tell
只是简单地省略whose visible is true
包含隐藏文件。
引用预先存在的文件夹或按需创建它的代码与Finder
上下文中的代码基本相同:
# Sample input path.
set the_path to POSIX path of (path to home folder)
# Sample subfolder name
set the_subfolder_name to "subfolder"
tell application "System Events"
if folder (the_path & the_subfolder_name) exists then
set subfolder to folder (the_path & the_subfolder_name)
else
set subfolder to make new folder at folder the_path ¬
with properties {name: the_subfolder_name}
end if
end tell
[1]为了可预测地排除隐藏项目,Finder
基于解决方案的方法不仅麻烦,而且具有巨大的副作用:
AppleShowAllFiles
首选项(defaults read com.apple.Finder AppleShowAllFiles
)的当前状态,本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句