-- Type/Creator 3.5
-- Näyttää tiedoston tyypin ja luojan. Voi myös muuttaa ne, jos tiedosto ei ole kansio, lukittu tai ohjelmatiedosto.
-- Datatiedoston luonutta ohjelmaa ei löydy levyiltäsi. Mitä teet?
-- a) Avaa tiedosto käyttäen kyseistä tiedostomuotoa ymmärtävää ohjelmaa, käyttäen ohjelman Open... tai Import... -komentoa.
-- -- Joudut avaamaan tiedoston kerrallaan. Et saa avattua kaksoisosoittamalla.
-- b) Käytä Mac OS 7.x säädintä Macintosh Easy Open muuttamaan kyseisen tiedostotyypin avaajaohjelmaa.
-- c) Käytä Mac OS 8.5 ja uudemman säädintä File Exchange muuttamaan kyseisen tiedostotyypin avaajaohjelmaa.
-- d) Muuta tiedoston luojamuuttuja vastaamaan kyseistä tiedostomuotoa ymmärtävän ohjelmasi luojamuuttujaa.
-- -- Viimeinen vaihtoehto on suositeltu vain niille, jotka tietävät, mitä tekevät. Laita myös alkuperäiset muuttujien arvot muistiin.
-- 1999 Tuomas Rosberg <vanhentunut>
-- Lähdekoodi on ilmaista ja tarkoitettu yleiseen käyttöön (public domain).
-- Sitä lainattessa kirjoittajan nimi on mainittava.
-- Koodilla ei ole mitään takuuta, ja sen sisältävää ohjelmaa käyttävät
-- toimivat omalla vastuullaan.
property theName : ""
property theType : ""
property theCreator : ""
property userCancelled : false
property allSelected : false
on run -- käynnistys Omppuvalikosta tai Skriptieditorista.
tell application "Finder"
set theList to selection
end tell
my tellTypeCrea(theList)
end run
on open theList -- käynnistys raahaamalla tiedostoja kuvakkeen päälle.
tellTypeCrea(theList)
end open
on tellTypeCrea(theList)
set userCancelled to false -- ei ole peruutettu.
set allSelected to false -- ei kaikkia valittuja tiedostoja kerralla.
tell application "Finder"
repeat with aFile in theList -- toistaa valittujen tiedostojen listalta tiedosto kerrallaan.
if userCancelled is false then
if allSelected is false then
set thePath to aFile as text
if the last character of thePath is not ":" then -- se ei ole kansio.
set theName to (name of aFile)
set theType to (file type of aFile)
set theCreator to (creator type of aFile)
display dialog ¬
"Tiedoston " & theName & "" & return & return & ¬
"tyyppi on " & theType & return & ¬
"ja luoja " & theCreator buttons {"Muuta", "OK"} default button "OK"
if button returned of result is "Muuta" then
my verify(aFile)
end if
else -- se on kansio.
display dialog ¬
"Kansiolla " & theName & " ei ole tyyppiä tai luojaa." buttons "Ohita" default button 1
end if
else if allSelected is true then -- muuta kaikkien valittujen tiedostojen parametrit.
exit repeat
end if
else if userCancelled is true then -- peruttu.
exit repeat
end if
end repeat
end tell
end tellTypeCrea
on verify(aFile) -- tarkistetaan, saako tiedoston tyyppiä ja luojaa muuttaa.
tell application "Finder"
if locked of aFile is false then -- se ei ole lukittu.
if theType is not "APPL" then -- se ei ole ohjelmatiedosto.
my newParams(aFile)
else -- se on ohjelmatiedosto.
display dialog ¬
"Ohjelmatiedoston tyyppiä ja luojaa ei saa muuttaa." buttons "OK" default button "OK"
end if
else --se on lukittu.
display dialog ¬
"Lukitun tiedoston tyyppiä ja luojaa ei saa muuttaa." buttons "OK" default button "OK"
end if
end tell
end verify
on newParams(aFile)
set newType to ""
set newCreator to ""
repeat --kysyy tyyppiä, kunnes sen pituus on neljä merkkiä.
display dialog ¬
"Tiedoston tyyppimuuttujassa on neljä (4) merkkiä." & return & ¬
"Muuta tiedoston " & theName & " tyyppi muotoon:" & return default answer theType buttons {"Peru", "OK"} default button "OK"
if button returned of result is "OK" then
if (count characters in text returned of result) = 4 then
set newType to text returned of result
repeat --kysyy luojaa, kunnes sen pituus on neljä merkkiä.
display dialog ¬
"Tiedoston luojamuuttujassa on neljä (4) merkkiä." & return & ¬
"Muuta luoja muotoon: " default answer theCreator buttons {"Peru", "Muuta kaikki", "OK"} default button "OK"
if button returned of result is "OK" then
if (count characters in text returned of result) = 4 then
set newCreator to text returned of result
my changeParams(aFile, newType, newCreator)
exit repeat --uusi luoja hyväksytty
end if
else if button returned of result is "Muuta kaikki" then
if (count characters in text returned of result) = 4 then
set newCreator to text returned of result
set allSelected to true -- lopettaa tellTypeCrea(theList) toiston
my changeAll(newType, newCreator)
exit repeat -- uusi luoja hyväksytty
end if
else if button returned of result is "Peru" then
set userCancelled to true --peruttu.
exit repeat
end if
end repeat --lopettaa luojan kysymisen.
exit repeat --uusi tyyppi hyväksytty.
end if
else if button returned of result is "Peru" then
set userCancelled to true
exit repeat --peruttu.
end if
end repeat --lopettaa tyypin kysymisen.
end newParams
on changeParams(aFile, newType, newCreator) -- yksittäisen tiedoston parametrien muutos.
set theOld to {theType, theCreator}
set theNew to {newType, newCreator}
considering case --AppleScript ei erota muuten isoja ja pieniä kirjaimia.
if theNew is not theOld then --käyttäjä antoi jommalle kummalle muuttujalle uuden arvon.
tell application "Finder"
set file type of aFile to newType
set creator type of aFile to newCreator
end tell
end if
end considering
end changeParams
on changeAll(newType, newCreator) -- kaikkien valittujen tiedostojen parametrien muutos.
set theOld to {theType, theCreator}
set theNew to {newType, newCreator}
considering case --AppleScript ei erota muuten isoja ja pieniä kirjaimia.
if theNew is not theOld then --käyttäjä antoi jommalle kummalle muuttujalle uuden arvon.
tell application "Finder"
set theList to selection
repeat with x in theList
set thePath to x as text
if the last character of thePath is not ":" then -- se ei ole kansio.
if locked of x is false then -- se ei ole lukittu.
if file type of x is not "APPL" then -- se ei ole ohjelmatiedosto.
set file type of x to newType
set creator type of x to newCreator
end if
end if
end if
end repeat
end tell
end if
end considering
end changeAll