Mission
a) välja fil och läsa in filinfon till string
b) parsa ut filens storlek
c) göra nåt om filen är större/mindre än en viss storlek
ps.
kör scipten var för sig i manusredigeraren med resultatfönstret och apple events fönstret uppe så ser du vad som händer hela tiden.
ds.
---
a)
börja med att välja en fil och spara vilken i en variabel (theFile)
be om infon för den valda filen och spara den i theInfo
code:<pre style="font-size:x-small; font-family: monospace;">set theFile to choose file
set theInfo to info for theFile</pre>
b
lägger till en rad för att hämta ut just filstorleken ur infon.
code:<pre style="font-size:x-small; font-family: monospace;">set theFile to choose file
set theInfo to info for theFile
set theSize to size of theInfo as integer --integer blir lite normala siffror</pre>
c
åsså tar vi och gör en if sats för att kolla om storleken är mer eller mindre än 500000 bytes (0,5mb) eller om den faktiskt är exakt 0,5 mb.
code:<pre style="font-size:x-small; font-family: monospace;">set theFile to choose file
set theInfo to info for theFile
set theSize to size of theInfo as integer --integer blir lite normala siffror
if theSize is greater than 500000 then
display dialog "Filen är större än 0,5 mb"
else if theSize is 500000 then
display dialog "Filen är EXAKT 0,5 mb stor"
else
display dialog "Filen är mindre än 0,5mb"
end if</pre>
ungefär så kan man göra med AS för att leta upp olika storlekar.
--- ---
Du ville ju leta upp filer större/mindre än en viss storlek i en mapp.
1)läs in mappens filer i en lista
2)gå igenom listan och kolla storleken
3)om någon fil är ok, lägg in den i en ny lista
1
jag väljer att läsa in mappen som string. som standard får man ett alias (folder ny mapp of desktop folder of...)
Bättre med "Mac OS X:Desktop Folder:Ny Mapp" eller hur det nu kan bli.
code:<pre style="font-size:x-small; font-family: monospace;">set theFolder to (choose folder) as string</pre>
2
Nu måste jag "trixa" lite. För det första så använder jag ett "tell application "finder"" för att få findern att göra lite arbete åt mig. Det jag vill att findern skall göra är att den skall lägga varje fil i en folder i en lista (every file of folder...) Det funkar bara i ett tell "finder" block.
Dessutom vill jag ju parsa ut alla filer som förhåller sig till en storlek på ett givet sätt. Jga har valt alla som är större än 500000bytes (0,5mb).
Jag skulle kunna använda mig av föregående exempel och be om infon, läsa in storleken till variabel och kolla variabeln mot mitt givna värde (500000) och sen med en if-sats antingen göra inget med just den filen eller lägga den sist i en lista som jag definierar i början av scriptet. Men, man kan också göra det enkelt för sig och använda sig av just tell app finder och en liten skojjig sak som heter "whose".
code:<pre style="font-size:x-small; font-family: monospace;">set theFolder to (choose folder) as string
tell application "Finder" to set theFiles to every file of (folder theFolder) whose size is greater than 500000</pre>
Vill man leta upp mindre filer så är det ju "smaller than..." man använder. Sen kan man ju leta efter låsta filer med "whose locked is true" eller alla filer som (på min dator) är kopplade till Photoshop - whose default application is alias "Arbeten:Applications:Adobe Photoshop 7:Adobe Photoshop 7.0:" osv osv.
Inte så knepigt - om man inte vill... kör hårt
/Mattias
[ 01 Oktober 2002, 00:16: Meddelandet ändrat av: Mattias Jonsson ]