[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:684) ファイルのフィルタ



拡張子かファイルタイプで、ファイルをフィルタします。
前にもちょっとここに書きましたけど、すこし書き直し。<効率はかわならないけど^^


on open of theFiles
	set my_files to my file_kind({"eps", "psd", "tif", "tiff", "pdf"}, {"EPSF", "PDF", "TIFF", "8BPS"}, theFiles)
	
	repeat with i in my_files
		tell application "Finder"
			display dialog i as text
		end tell
	end repeat
end open

----------------------------------------------●必要なファイルだけをフィルタして返します
to file_kind(extention_list, type_list, theFiles)
	set my_files to {}
	set extention_list to my conv_unicode(extention_list)
	set type_list to my conv_unicode(type_list)
	
	ignoring case
		tell application "Finder"
			repeat with i in theFiles
				if extention_list contains ((name extension of i) as Unicode text) then
					set end of my_files to contents of i
				else if (kind of i) is "フォルダ" as Unicode text then
					display dialog "フォルダ「" & (name of i) & "」の中の全ファイルを処理します" buttons {"キャンセル", "OK"} default button 2 with icon 0
					set my_files to my_files & my file_kind(extention_list, type_list, every file in folder i)
				else if type_list contains ((file type of i) as Unicode text) then
					set end of my_files to contents of i
				else
					display dialog "ファイル「" & (name of i) & "」は処理ファイルとして不適当です" buttons {"キャンセル", "OK"} default button 2 with icon 0
				end if
			end repeat
		end tell
	end ignoring
	return my_files
end file_kind

----------------------------------------------○リストの項目をunicode textにする
to conv_unicode(tmp_list)
	repeat with i in tmp_list
		set contents of i to (contents of i) as Unicode text
	end repeat
	return tmp_list
end conv_unicode