TweetFollow Us on Twitter

Folder Clean-up
Volume Number:9
Issue Number:3
Column Tag:Useful Tricks

Related Info: File Manager File Mgr (PBxxx) Finder Interface

Clean up Your Folders

An app to arrange your finder windows

By Mike Scanlin, MacTech Magazine Regular Contributing Author

Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.

Isn’t it nice that the Developer CD has all of its directory windows nicely orgainized and arranged so that you can work your way down eight or nine levels deep and see at a glance the complete path to where you currently are? Wouldn’t it be nice if your gigabyte hard drive obeyed the same pretty convention? Well, here’s a little code fragment that will make that possible for you.

CleanUpFolders is a tiny app I wrote when the server volumes at my company were getting out of control. People with 96” monitors would put server directory windows all over the place so that when I opened them on my 16” screen they would either be minimally visible or in a place where the Finder put them because they would otherwise be off the screen entirely. Now we run CleanUpFolders on our server volumes about once a week and all is well. It positions and sizes all directory windows in a staggered fashion, as well as changes the view of each directory to View by Name and closes any open triangles it finds.

Before CleanUpFolders:

After CleanUpFolders:

Much nicer, eh? This program has no user interface whatsoever. You just launch it and when it returns your windows are consistently sized and positioned. You can change the size, position and offset of the windows by editing the source code and recompiling. I know, it’s somewhat crude, but MacTech readers don’t want to read two pages of interface and event handling fluff just to get to the 20 lines of code that actually does something, do they? I thought so.

After you run CleanUpFolders you will have to close all your windows and then reopen them before you see its effects (because the Finder doesn’t resize an open window when you call PBSetCatInfo on it, but it will use the new size if you close and then reopen the window). Have fun.

Listing CleanUpYourFolders.c
/*****************************************************
 * CleanUpFolders
 *
 * A little app to clean up all folders' windows
 * starting with the one that this app is in and
 * continuing recursively downwards.
 *
 * Mike Scanlin  17 Oct 1992
 ****************************************************/

#define kFolderBit (1 << 4)
#define kZoomBit 0x0020
#define kOpenTriangleBit  0x0010
#define kViewMask0xFF00
#define kViewByName0x0200

void main(void);
void CleanUpAFolder(long theDrDirID);
void EnumerateCatalog(long dirID);

CInfoPBRectheCPB;
Str255  theName;
Rect    theRect;
short   hOffset, vOffset;


/*****************************************************
 * main
 * 
 * Clean up the directory that this app is residing
 * in and then all of the directories contained within
 * this directory recursively. Put this app in the 
 * root directory of a volume and launch it to clean 
 * up the entire volume.
 ****************************************************/
void main()
{
 long   dirID;
 short  vRefNum;
 
 /* Set the initial directory's size and position */
 SetRect(&theRect, 2, 40, 2+228, 40+165);
 
 /* Set the offset for each child directory */
 hOffset = 16;
 vOffset = 16;
 
 /* Find out where this app is located */
 HGetVol(&theName, &vRefNum, &dirID);

 theCPB.dirInfo.ioVRefNum = vRefNum;
 theCPB.dirInfo.ioNamePtr = theName;
 
 /* First, clean up the current directory */
 theCPB.hFileInfo.ioFDirIndex = -1;
 theCPB.dirInfo.ioDrDirID = dirID;
 PBGetCatInfo(&theCPB, FALSE);
 CleanUpAFolder(theCPB.dirInfo.ioDrParID);
 
 /* Now clean up all child directories */
 EnumerateCatalog(dirID);
}


/*****************************************************
 * CleanUpAFolder
 * 
 * Given a directory ID, this will unzoom the
 * window, size and position the window, close the
 * "triangle" and set the view to View by Name.
 ****************************************************/
void CleanUpAFolder(long theDrDirID)
{
 theCPB.dirInfo.ioDrDirID = theDrDirID;
 theCPB.dirInfo.ioDrUsrWds.frRect = theRect;
 /* clear the zoomed bit, the "open triangle bit"
  * and the view; leave the other bits alone
  * because we don't know what they're for.
  */
 theCPB.dirInfo.ioDrUsrWds.frView &=
 ~kViewMask - kZoomBit - kOpenTriangleBit;
 /* set the view to View by Name */
 theCPB.dirInfo.ioDrUsrWds.frView |= kViewByName;
 PBSetCatInfo(&theCPB, FALSE);
}


/*****************************************************
 * EnumerateCatalog
 *
 * Given a directory ID to start with, this calls
 * CleanUpAFolder once for every directory within
 * the given start directory. On entry it offsets
 * theRect down and to the right; on exit it offsets
 * it up and to the left.
 ****************************************************/
void EnumerateCatalog(long dirID)
{
 long   tempDir;
 short  index;
 OSErr  myErr;
 
 OffsetRect(&theRect, hOffset, vOffset);

 index = 1;
 do {
 theCPB.hFileInfo.ioFDirIndex = index;
 theCPB.dirInfo.ioDrDirID = dirID;
 myErr = PBGetCatInfo(&theCPB, FALSE);
 if (myErr == noErr) {
 if (theCPB.hFileInfo.ioFlAttrib & kFolderBit) {
 tempDir = theCPB.dirInfo.ioDrDirID;
 CleanUpAFolder(dirID);
 EnumerateCatalog(tempDir);
 myErr = noErr;
 }
 }
 index++;
 } while (myErr == noErr);

 OffsetRect(&theRect, -hOffset, -vOffset);
}

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Dashlane 6.2027.0 - Password manager and...
Dashlane is an award-winning service that revolutionizes the online experience by replacing the drudgery of everyday transactional processes with convenient, automated simplicity - in other words,... Read more
ffWorks 2.1.5 - Convert multimedia files...
ffWorks, focused on simplicity, brings a fresh approach to the use of FFmpeg, allowing you to create ultra-high-quality movies without the need to write a single line of code on the command-line.... Read more
Dropbox 101.4.434 - Cloud backup and syn...
Dropbox for Mac is a file hosting service that provides cloud storage, file synchronization, personal cloud, and client software. It is a modern workspace that allows you to get to all of your files... Read more
1Password 7.6 - Powerful password manage...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
EyeTV 4.0.0 - Watch and record TV on you...
EyeTV brings a rich TV experience to your Mac. Watch live TV on your Mac. Pause, rewind, and record whenever you want. EyeTV gives you powerful control over what you watch and how you watch it. Put... Read more
Tidy Up 5.3.7 - Find duplicate files and...
Tidy Up is a full-featured duplicate finder and disk-tidiness utility. Features: Supports Lightroom: it is now possible to search and collect duplicates directly in the Lightroom library. Multiple... Read more
Pinegrow 5.97 - Mockup and design web pa...
Pinegrow (was Pinegrow Web Designer) is desktop app that lets you mockup and design webpages faster with multi-page editing, CSS and LESS styling, and smart components for Bootstrap, Foundation,... Read more
BlueStacks 4.210.0 - Run Android applica...
BlueStacks App Player lets you run your Android apps fast and fullscreen on your Mac. Feature comparison chart How to install Bluestacks on your Mac Go to MacUpdate and click the green "Download"... Read more
WhatsApp 2.2027.10 - Desktop client for...
WhatsApp is the desktop client for WhatsApp Messenger, a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS. WhatsApp Messenger is available for... Read more
Art Text 4.0.1 - $29.99
Art Text is graphic design software specifically tuned for lettering, typography, text mockups and various artistic text effects. Supplied with a great variety of ready to use styles and materials,... Read more

Latest Forum Discussions

See All

Clash Royale: The Road to Legendary Aren...
Supercell recently celebrated its 10th anniversary and their best title, Clash Royale, is as good as it's ever been. Even for lapsed players, returning to the game is as easy as can be. If you want to join us in picking the game back up, we've put... | Read more »
Steam Link Spotlight - Disco Elysium
Steam Link Spotlight is a feature where we look at PC games that play exceptionally well using the Steam Link app. Our last entry was Signs of the Sojourner Read about how it plays using Steam Link over here. | Read more »
Distract Yourself With These Great Mobil...
There’s a lot going on right now, and I don’t really feel like trying to write some kind of pithy intro for it. All I’ll say is lots of people have been coming together and helping each other in small ways, and I’m choosing to focus on that as I... | Read more »
Pokemon Go's July Community Day wil...
Pokemon Go developers have announced the details concerning the upcoming Gastly Community Day. This particular event was selected by the players of the game after the Gas Pokemon came in second place after a poll that decided which Pokemon would... | Read more »
Clash Royale: The Road to Legendary Aren...
Supercell recently celebrated its 10th anniversary and their best title, Clash Royale, is as good as it's ever been. Even for lapsed players, returning to the game is as easy as can be. If you want to join us in picking the game back up, we've put... | Read more »
Detective Di is a point-and-click murder...
Detective Di is a point-and-click murder mystery set in Tang Dynasty-era China. You'll take on the role of China's best-known investigator, Di Renjie, as he solves a series of grisly murders that will ultimately lead him on a collision course with... | Read more »
Dissidia Final Fantasy Opera Omnia is se...
Dissidia Final Fantasy Opera Omnia, one of Square Enix's many popular mobile RPGs, has announced a plethora of in-game events that are set to take place over the summer. This will include several rewards, Free Multi Draws and more. [Read more] | Read more »
Sphaze is a neat-looking puzzler where y...
Sphaze is a neat-looking puzzler where you'll work to guide robots through increasingly elaborate mazes. It's set in a visually distinct world that's equal parts fantasy and sci-fi, and it's finally launched today for iOS and Android devices. [... | Read more »
Apple Arcade is in trouble
Yesterday, Bloomberg reported that Apple is disappointed in the performance of Apple Arcade and will be shifting their approach to the service by focusing on games that can retain subscribers and canceling other upcoming releases that don't fit... | Read more »
Pixel Petz, an inventive platform for de...
Pixel Petz has built up a sizeable player base thanks to its layered, easy-to-understand creative tools and friendly social experience. It revolves around designing, trading, and playing with a unique collection of pixel art pets, and it's out now... | Read more »

Price Scanner via MacPrices.net

B&H Photo offers $200-$300 discounts on A...
B&H Photo has new 16″ MacBook Pros on sale today for $200-$300 off Apple’s MSRP, starting at $2149. Expedited shipping is free to many addresses in the US: – 2019 16″ 2.6GHz 6-Core MacBook Pro... Read more
Clearance 2019 15″ MacBook Pros on sale today...
Amazon-owned Woot is blowing out Apple refurbished, clearance 2019 15″ MacBook Pros starting at only $1579 and up to $950 off Apple’s original MSRP. According to Woot, “These MacBooks are Refurbished... Read more
Apple Refurbished iMac Pros available for $35...
Amazon-owned Woot is selling Apple refurbished 27″ 3.2GHz 8-Core iMac Pros for $3599.99 shipped. That’s $1400 off Apple’s original MSRP for this model. According to Woot, these iMac Pros are “Factory... Read more
Clearance 2019 13″ 2.4GHz/256GB MacBook Pro o...
B&H Photo has dropped their price on the clearance 2019 13″ 2.4GHz/256GB Quad-Core Silver MacBook Pro by $500 off Apple’s original MSRP to a new low of only $1299. Expedited shipping is free to... Read more
$219 Apple AirPods Pro are back at Verizon, s...
Verizon has Apple AirPods Pro on sale again for a limited time for $219.99 on their online store. Their price is $30 off Apple’s MSRP, and it’s the lowest price we’ve seen for AirPods Pro. Available... Read more
Apple’s $779 13″ MacBook Air deal returns to...
Apple has clearance, Certified Refurbished, 2019 13″ MacBook Airs available again starting at $779. Each MacBook features a new outer case, comes with a standard Apple one-year warranty, and is... Read more
$200 13″ MacBook Pro discounts are back at Am...
Amazon has 2020 13″ 2.0GHz MacBook Pros on sale again today for $150-$200 off Apple’s MSRP. Shipping is free. Be sure to purchase the MacBook Pro from Amazon, rather than a third-party seller, and... Read more
Deal Alert! Apple AirPods with Wireless Charg...
Sams Club has Apple AirPods with Wireless Charging Case on sale on their online store for only $149.98 from July 6, 2020 to July 9, 2020. Their price is $50 off Apple’s MSRP, and it’s the lowest... Read more
Xfinity Mobile promo: Apple iPhone XS models...
Take $300 off the purchase of any Apple iPhone XS model at Xfinity Mobile while supplies last. Service plan required: – 64GB iPhone XS: $599.99 save $300 – 256GB iPhone XS: $749.99 save $300 – 512GB... Read more
New July 2020 promo at US Cellular: Switch an...
US Cellular has introduced a new July 2020 deal offering free 64GB Apple iPhone 11 smartphones to customers opening a new line of service. No trade-in required, and discounts are applied via monthly... Read more

Jobs Board

Product Manager, *Apple* Commercial Sales -...
Product Manager, Apple Commercial Sales Austin, TX, US Requisition Number:77652 As an Apple Product Manager for the Commercial Sales team at Insight, you Read more
Physical Therapist Assistant - *Apple* Hill...
Physical Therapist Assistant - Apple Hill Rehab - Full Time Tracking Code 62519 Job Description General Summary: Under the direct supervision of a licensed Physical Read more
Operating Room Assistant, *Apple* Hill Surg...
Operating Room Assistant, Apple Hill Surgical Center - Full Time, Day Shift, Monday - Saturday availability required Tracking Code 62363 Job Description Operating Read more
Perioperative RN - ( *Apple* Hill Surgical C...
Perioperative RN - ( Apple Hill Surgical Center) Tracking Code 60593 Job Description Monday - Friday - Full Time Days Possible Saturdays General Summary: Under the Read more
Product Manager, *Apple* Commercial Sales -...
Product Manager, Apple Commercial Sales Austin, TX, US Requisition Number:77652 As an Apple Product Manager for the Commercial Sales team at Insight, you Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.