• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: getting a file list in sorted order
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: getting a file list in sorted order


  • Subject: Re: getting a file list in sorted order
  • From: Bill Briggs <email@hidden>
  • Date: Sat, 17 Aug 2002 22:17:49 -0300

At 12:31 AM +0100 18/08/02, 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.

On a 250 MHz WallStreet running AppleScript 1.8.3 on OS 9.1 it takes {Scripter:9.8, Script Debugger:13.2, Script Editor: 17.4, Smile: 12.0} seconds to loop with 32 text files in the folder and only {Scripter:3.2, Script Debugger:3.3, Script Editor: 2.9, Smile: 2.9} seconds for your script. I only ran one as a stand alone application and it was slower than in the editors. I didn't run them in OSA menu.

- web
_______________________________________________
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.

References: 
 >Re: getting a file list in sorted order (From: Nigel Garvey <email@hidden>)

  • Prev by Date: Re: getting a file list in sorted order
  • Next by Date: Re: OS 10.2 & Mail scripting has introduced a new wrinkle
  • Previous by thread: Re: getting a file list in sorted order
  • Next by thread: Re: getting a file list in sorted order
  • Index(es):
    • Date
    • Thread