Re: getting a file list in sorted order
Re: getting a file list in sorted order
- Subject: Re: getting a file list in sorted order
- From: Andy Wylie <email@hidden>
- Date: Sun, 18 Aug 2002 14:32:34 +1200
on Sun, 18 Aug 2002 00:31:03 +0100 Nigel Garvey wrote:
>
Bill Briggs wrote on Sat, 17 Aug 2002 14:56:39 -0300:
>
>
>At 6:34 PM +0100 17/08/02, Nigel Garvey wrote:
>
>>Jim Brandt wrote on Sat, 17 Aug 2002 06:38:33 -0500:
>
>
>> > set theList to every item of alias source1 whose file type is "TEXT"
>
>>>
>
>>>This list of aliases is not sorted alphabetically as the file list
>
>>>would be shown in a list view.
>
>
>> tell application "Finder"
>
>> set theList to sort (every item of alias source1 whose file type is
>
>>"TEXT") by name
>
>> end tell
>
>
> It may be relevant to the original poster that this sorting
>
>operation in the finder coerces all of the aliases into Finder's file
>
>references. That may be acceptable, but it may not be good, depending
>
>on how he wants to process the list.
>
>
>
> Unfortunately, a one-shot conversion using "as alias list" won't
>
>coerce the lot back. If he wants an alias list, he'll have got to
>
>loop through to coerce each one individually.
>
>
>
>tell application "Finder"
>
>set theList to sort (every item of alias source1 whose file type is
>
>"TEXT") by name
>
>-- set theList to (result as alias list) -- bulk coercion doesn't work
>
>repeat with i from 1 to count of theList
>
>set item i of theList to (item i of theList as alias)
>
>end repeat
>
>end tell
>
>theList
>
>
Another approach, if aliases are required, is to remember that the
>
contents of a folder *are* normally returned in alphabetical order. The
>
order's only spoilt when something happens within the folder. (Hence the
>
original question.) On my machines (Mac OS 9.2.1 and 8.6) it's possible
>
to force a reset by opening and shutting the folder. Thus:
>
>
tell application "Finder"
>
tell alias source1
>
open
>
close
>
try
>
set theList to (its every item whose file type is "TEXT") as
>
alias list
>
on error
>
set theList to (its first item whose file type is "TEXT") as
>
alias as list
>
end try
>
end tell
>
end tell
>
>
I'd be interested to know if this works for other people and whether or
>
not it's faster than looping.
>
Yes it works (8.6), looping is a little faster but this about 10x...
tell application "Finder"
tell (alias source1's every item whose file type is "TEXT")
try
set theList to it as alias list
on error
set theList to {it as alias}
end try
end tell
end tell
_____________________________ Andy
_______________________________________________
applescript-users mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/applescript-users
Do not post admin requests to the list. They will be ignored.