অ্যাপলস্ক্রিপ্ট কোডটি মনে হচ্ছে ঠিক এর creation date
চেয়ে বরং এটি পাচ্ছে date added
। ফাইন্ডার এবং সিস্টেম ইভেন্টগুলিdate added
অ্যাপলস্ক্রিপ্টে তথ্য সঞ্চয় করে না । আপনি যদি ইয়োসেমাইট চালাচ্ছিলেন তবে আপনি এটি অ্যাপলস্ক্রিপ্টঅবিজেসি দিয়ে করতে পারতেন। তবে, মাভেরিক্সের সাথে, আমি কেবল শেল স্ক্রিপ্টিংয়ের মাধ্যমে ভাবতে পারি a
বাশ স্ক্রিপ্টের মাধ্যমে:
F=~/folder \
&& [[ -d "$F" ]] \
&& mdls -name kMDItemFSName -name kMDItemDateAdded -raw "$F"/* \
| xargs -0 -I {} echo {} \
| paste -sd" \n" - - \
| sort \
| tail -1 \
| cut -f4- -d" " \
| printf '%s\n' "$F/$(cat)"
একটি অ্যাপলস্ক্রিপ্টের মধ্যে থেকে:
অ্যাপলস্ক্রিপ্ট ব্যবহার করে শেল কমান্ডগুলি কার্যকর করার ক্ষমতা রাখে do shell script
। আপনি হয় উপরের পুরো কমান্ডটি ব্যবহার করে চালাতে পারেন do shell script
যা সম্ভবত বেশিরভাগ লোকেরা করতেন। তবে, কেবল প্রদর্শনের উদ্দেশ্যে, আমি এটিকে কিছুটা অ্যাপলস্ক্রিপ্টিংয়ের সাথে মিশাতে চলেছি।
property text item delimiters : space
set myFolder to "/Users/lawsome/folder" -- Folder to be evaluated
-- Assemble shell command
set sh to the contents of {¬
"[[ -d", quoted form of myFolder, "]]", "&&", ¬
"mdls", "-name kMDItemFSName", "-name kMDItemDateAdded", ¬
"-raw", [quoted form of myFolder, "/*"], ¬
"|", "xargs", "-0 -I {} echo {}", ¬
"|", "paste", "-sd' \\n' - -", ¬
"|", "sort"} as text
do shell script sh -- run the bash command
set latestFileAddedToFolder to the last paragraph of the result
--> e.g. 2018-08-13 08:02:52 +0000 Some File Name.txt
-- Split text up into date components and filename text
set [{yyyy, m, dd, HH, MM, SS, "+", timezone}, filename] to ¬
[words 1 thru 8, text 27 thru -1] of latestFileAddedToFolder
-- Construct AppleScript date object from date components
tell the (current date) to set ¬
[dateAdded, year, its month, day, time] to ¬
[it, yyyy, m, dd, hours * HH + minutes * MM + SS]
set pathToMostRecentlyAddedFile to myFolder & "/" & filename
return contents of {pathToMostRecentlyAddedFile, ¬
"was added to its containing folder", myFolder, ¬
"on", date string of dateAdded, ¬
"at", time string of dateAdded} as text