34 lines
768 B
Python
34 lines
768 B
Python
|
"""Make the finder open an application, file or folder"""
|
||
|
|
||
|
import Finder_7_0_Suite
|
||
|
import aetools
|
||
|
import MacOS
|
||
|
import sys
|
||
|
import macfs
|
||
|
|
||
|
SIGNATURE='MACS'
|
||
|
|
||
|
class Finder(aetools.TalkTo, Finder_7_0_Suite.Finder_7_0_Suite):
|
||
|
pass
|
||
|
|
||
|
def open_in_finder(file):
|
||
|
"""Open a file thru the finder. Specify file by name or fsspec"""
|
||
|
finder = Finder(SIGNATURE)
|
||
|
fss = macfs.FSSpec(file)
|
||
|
vRefNum, parID, name = fss.as_tuple()
|
||
|
dir_fss = macfs.FSSpec((vRefNum, parID, ''))
|
||
|
file_alias = fss.NewAlias()
|
||
|
dir_alias = dir_fss.NewAlias()
|
||
|
return finder.open(file_alias, items=[file_alias])
|
||
|
|
||
|
def main():
|
||
|
fss, ok = macfs.PromptGetFile('File to launch:')
|
||
|
if not ok: sys.exit(0)
|
||
|
result = open_in_finder(fss)
|
||
|
if result:
|
||
|
print 'Result: ', result
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|
||
|
|