43 Folders

43 Folders feed subscription icon - Shiny! Drowning in email? Try Inbox Zero to learn sane tips for dealing with high-volume email. And don’t miss the free Inbox Zero video. »

Login or register

Register for free on 43 Folders to comment on articles, post to our forum, customize your visits, and much more. Current users can login now.

Vox Populi: Best practices for file naming

If it wasn’t apparent from my pathetic cry for help the other day, even I — one of your more theoretically productive persons in North America — struggle with what to call things.

Tags, files, and — dear Lord — the innumerable assets associated with making web sites, graphics, audio, and video projects; it’s all a hopeless jumble unless you have some kind of mature system in place for what you call your stuff and its various iterations. Of course, if you’re like me — and I hope that you are not — you still have lots of things on your desktop with names like “thing-2 finalFinal! v3 (with new changes) 05b.psd”.

For prior art, I still treasure this Jurassic thread on What Do I Know where people share their thoughts on this age-old problem, but, frankly I haven’t seen many good resources out there on best practices for naming.

Anyhow, during a recent MacBreak shoot, I noticed that Alex and his team seem to have a pretty fly system for naming the video files that eventually get turned into their big-time IPTV shows. Thus, I turned to Pixel Corps’ Research Division Lead, Ben Durbin (co-star of Phone Guy #5) for insight and sane help. And, brother, did he ever give it to me (see below the cut for Ben’s detailed awesomeness).

But, just so I don’t lose you, do give me your best tips in comments: What are your favorite current conventions for naming files? How does your team show iterations and versions? Do you rely more on Folder organization than file names in your work? How have Spotlight, Quicksilver, and the like changed the way you think about this stuff?

Ben shares how Pixel Corps does it, video style:

We’re still settling into best practices that are shared amongst all the teams, but here are some themes:

File names are a set of fields separated by underscores. We share files on linux servers, so while manageable, we consider spaces in filenames to be lowercase b bad.

If it’s an established or long-term project, we try to keep the codes for the various fields to three letters. This allows for more fields without having the file names get too long.

If it’s not an established project, we favor readability (longer field names) and consistency. Even if your field data are arbitrarily chosen, as long as you’re naming things consistently, you can always use batch renaming to convert a given field into a code later.

When possible, the fields are arranged left to right from general to specific.

Files that may have iterations get a three-digit, padded iteration number as their final field.

Even when we use folder structures with multiple subfolders, the project code fields stays as a prefix of all files, so that if files get misplaced, they’re still easily findable (example: all post files for a MacBreak episode will start with “mbk_eps_episodeNumber_” regardless of where they sit in the folder structure).

Caveats:

As you’ve probably noticed, the problem with file names in general is that they only give you a single “view” and aren’t applicable to other ways in which you might want to see/sort the files in other contexts. Advanced users can get all grep-daddy with it, but they’re in the minority. At best, file naming structures are a “good enough” solution that works well most of the time if you don’t have a more robust metadata system in place.

The problem with metadata systems, of course is that they tend to either be proprietary or only applicable to certain file types. Are we going to use annotations on all of our Quicktime movies? Create some custom xml format that gets parsed by a proprietary app? Structured Spotlight comments? The check-in comments of a versioning system like Subversion? The lack of a good, widely-accepted metadata framework that is spoken by all OSes and/or that can be embedded into most file types lead many people to resort to file naming structures and leave it at that.

Dang. Thanks for that, Ben!


To repeat:

What are your favorite current conventions for naming files? How does your team show iterations and versions? Do you rely more on Folder organization than file names in your work? How have Spotlight, Quicksilver, and the like changed the way you think about this stuff?


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
SimonT's picture

Lots of great ideas (I...

Lots of great ideas (I favour the YYYMMDD prefix for time sensitive stuff as well). I also think using meaningful directory structures is a winner too, but it does make protability difficult. If I mail you ‘V22.doc’ am I going to know where to put it when you mail back the revision? Will you know what it is unless I explain in detail in the mail?

So why not use the most excellent THE Rename ( http://www.herve-thouzard.com/modules/wfsection/article.php?articleid=1 ) to add the directory structure text to the file name? Then strip it off when the file comes back.

It’s also a great help if you discover that your naming convention is just about to fail and you need to do some serious file naming surgery.

I’ve used it for tens of thousands of files as part of major reference work projects and it’s never let me down.

links for 2006-10-26 « General Musings's picture

[...] Vox Populi: Best practices...

[…] Vox Populi: Best practices for file naming (tags: productivity organization lifehacks organize files gtd 43folders) […]

Dan's picture

I agree with all the...

I agree with all the subfolder love..

Having a bit of programming experience, I try to incorporate the DRY (Don’t Repeat Yourself) principle wherever I can. In my opinion, all of the listed conventions that suggest a filename like:

2006-10-26_Client_Brand_Project_filename_##.ext

…are just repeating data that is either saved with the file (timestamp), or can be included using subfolders. I personally would rather have descriptive filenames.

Just my $.02, though I could go on at length about this topic :)

UXperience's picture

What’s the Best File Naming...

What’s the Best File Naming Convention?…

An interesting thread on file naming conventions going on over at 43 Folders. Technorati Tags: filename, naming convention, 43Folders, Merlin Mann, best+practices, UXperience

……

J.G.Harston's picture

You have subdirectories - use...

You have subdirectories - use them! In my photos collection I have yyyy/mm/nnnn.ext where yyyy is the year, mm the month, and nnnn an incrementing number for that month. On websites I have things like: /img/file/csv.gif /img/file/doc.gif /img/file/zip.gif for file icons /img/rose/con.gif /img/rose/lab.gif /img/rose/snp.gif for party rosettes, etc. /img/navbar/welcome.jpg /img/navbar/footer.jpg /press/2005/10/04a.htm /press/2005/10/06a.htm etc. At work in my user area I have things like: /Docs/AreaPanel /Docs/Benefits /Docs/Schools /Maps/10inch /Maps/50k/SK/04/17.gif /Maps/50k/SK/04/18.gif /Maps/Street/0204.gif .etc.etc.etc.

Jay-Z's picture

USER>DOCUMENTS > PROJECTS_NOW>CLIENT_JOBNAME - DESI

USER>DOCUMENTS > PROJECTS_NOW>CLIENT_JOBNAME - DESIGN
- ASSETS
- INVOICE

The Breakdown for a typical design job:

_DESIGN
___Within “Design” Folder I have folders in dates to track versions.time.progress.ideas.organize.
___10.28
____FILENAME1_v01.psd (A file name can be a working name usually the desc of job or what it is aka Poster)
____FILENAME1_v02_differentcolor.psd
____FILENAME1_elements_01.ai
____FILENAME1_elements_02.ai
____FILENAME2_v01_Sharp.different font.psd
____FILENAME3_v01_Blur.psd
_________SENT
___________FILENAME_v01.jpg
___________FILENAME_v02.jpg
___________FILENAME2_v01.jpg
___________FILENAME3_v01.jpg
___________MYNAME.10-28-2006.PRESENT.zip

___10.29
____FILENAME1_v03.psd
______FILENAME1_v04.psd
____FILENAME1_v04_A.psd v __FILENAME1_v04_B.psd
______FILENAME_element_web nav assets.ai
__FILENAME_elements_somethingelse.ai
_________SENT
___________FILENAME_v03.jpg
___________FILENAME_v04.jpg
___________MYNAME.10-23-06.PRESENT.zip (Zip and send to them is easier)

___10.30_F
____FILENAME_v11.psd
____FILENAME_v12-FixedColors-F.psd (“F” in the end of file name is FINAL. no buts. label it red)
_________SENT
___________FILENAME_v12-F.jpg
___________MYNAME.10-26-06.PRESENT.zip (Zip and send to them is easier)

___10.30_FINAL
_________FINAL_MASTER
___________FILENAME_v12_F-layers.psd
___________FILENAME_v12_F-flat.psd
___________FILENAME_v12_F_Websize.psd (72dpi so you can open it in photoshop)

___ASSETS
____FROM.CLIENT
_________BRIEF
_________CONTACT INFO
_________IMAGES
______FROM.ME
_______IMAGES
_________LOGO EPS ELEMENTS
_________OTHER

___”_INVOICE” (underscore it stays at the top of Client.Jobname when job is over)
_____SENT
_______MyName.JobDesc.INVOICE.MonthDayYear.pdf

__ “DOC”
______Contract.doc
__helpfulbookmarks.txt (this is good little txt to have when you find good bookmarks)
____Client.Jobname.notes.txt (sketchbook notes. I place this in the desktop so its always accesible when i am on the phone)

After job is finished, drop into: USER>DOCUMENTS>PROJECTS_ARCHIVE

For a WEB job, same rules apply but different set of folders: - DESIGN
- - - MASTER (Master layout psd or ai)
- - - ASSETS.ELEMENTS (certain section designs PSD to save for web)
- - - ASSETS.RAW (like all the product shots or whatever to save for web)
- CODING
- - - SCRIPTS.HELP (Scripts im using that i got online. URL’s saved to folder for easy access)
- - - CODE (where the html, php, files live)
- ASSETS
- - - ASSETS.RAW (sometimes the assets folder is really huge and you dont want it mixed with design)
- INVOICE (add underscore in front of Invoice to declare job finished, and you sent invoice off)

(note 2006-10-30: reformatted by Merlin)

Nicky's picture

It's good to see I'm...

It’s good to see I’m not the only one struggling with something so simple as file naming. Perfect timing, as I am just about to restructure my files and bookmarks - found some useful aspects!

yann's picture

if you want it to...

if you want it to be future proof, you might wanna add at least one zero padding to the year part of your convention… ;)

Nate Biehl's picture

I can't believe this is...

I can’t believe this is a GTD-influenced page and no one has mentioned one of the BEST of best practices: OVERWRITE THE OLD STUFF! If the file named FINAL needs changes, it’s no longer the FINAL version, and it can often be disposed of.

I work in video, and I’m constantly revising and tweaking, but even with storage assets approaching TBs I found myself filling enormous amounts of hard disk with different “versions” of products when only one version can be broadcast at a time. In order to save the time I spent constanly rearranging my drives, ESPECIALLY the time spent watching “flawed” FINAL(NO REALLY, THIS IS IT!) files, I name one MASTER copy of a file, then overwrite it as changes need to be made. That way when I come to the end of the project, I always know which one is the real deal, I accumulate far fewer “versions” of files, and if I do have aborted or flawed residual files, they’re easy to find and nuke.

Also, when a project is done, I’ve had to become religious about biting the bullet and throwing the various supporting elements out. I’ve still got the MASTER file, and if changes need to be made, rather than going back to the original “project” and re-rendering everything, I just use the MASTER file as the base and produce any changes over the top. Saves on space, rendering time, and file management time.

This doesn’t work with everything; with more dynamic projects I must keep the original supporting files and adjust many parts at once, but I still render just one MASTER file that is the current version, overwriting the outdated version with no ambiguity. If I want to keep outdated material, I archive it to DVD as reference material.

jake perdu's picture

Great comments. But I am...

Great comments. But I am surprised that OS programmers have not solved this issue by now. I was Y2K-ready in the ’80s by naming/organizing my files then in a YYYYMMDD format for alphnumeric sorting. But in the 90s I dropped the timestamping, expecting the OS to let me have the same file names within one folder and sorting them for me based upon its OS timestamps. RIGHT! So, I still wish timestamps would act as versioning within the damn OS. Activate as default or by folder. I hate changing filenames because when I have to do some past research… well, I’ll not get into that can of worms. And I basically hate both Apple and Microsoft equally when it comes to how difficult they make it to keep one’s files organized. And don’t get me started on how apps and OSes each handle alphanumeric sorting differently, even leading underscores. Y’argh.

So, after giving up on both Apple and Microsoft, my solution was to create twenty primary folders of ALLCAPS, the secondary folders are TitleCased folders, and the tertiary folders are lowercase. In fact, this is how I organize everything now (personal and work, but I work for myself) from my analog files (only primary categories, then by year, I don’t have much paper filing) to my QuickBooks accounts to my bookmarks to my categories/tags. When I need to create a new category, I enter it on the spot into each of my systems and into my outlined, bulleted meta document, which is then published in each system for easy recall. It took me awhile to get used to this system but I swear by it now. If only I had the time to figure out how to get my TiddlyWiki to sort them by hierarchy and alphanumeric.

Once I had a concern like Nate expresses but wanted to keep my ginormous files just in case, so what I did was create a working files directory (projectnameWF) for every project to keep all my drafts separate from my current final version. This works great for print design projects but for the web or anytime I am learning a new system and know that I’ll be going through numerous versions and the client will ask about “Tuesday’s” version, I do something else, I create a build folder structure and store only the files that were updated that day. So, my structure looks like:

build\yyyy\mm\dd\website\path\by\folder4a7d3d609129a9296bf7ac0608c2097

In the rare case I store two versions of the same file, I simply append a timestamp to it. I’ve created macros to take out some of the manual tediousness of copy’n’pasting.

I do it this way so that I can easily track down bugs and what not. Or when the client says, “You know what, let’s go back to what we had Monday.” Wish I understood SVN-versioning and could get it working but until then this system has worked well for me.

Hosidax's picture

I use dates for versioning...

I use dates for versioning my projects filenames (which change every few days). I use “military” date notation which does not use any special characters like “-” or “_”. It’s quick to type out and is quite easy to understand for anyone not already familiar with the format.

Today is 23oct06.

Terence's picture

I used yymmdd at the...

I used yymmdd at the beginning of the name, as many have recommended, for a while. Alas my team is not very naming convention oriented, and they just looked at the files and it confused and alienated them. I also discovered it was not going to be worth the time to introduce underscores (especially since we do not frequently share files outside our little Mac-using workplace.) Abbreviations did not fly.I work in a school, and we frequently have to write to certain grade levels (or their parents), and I would put that number at the end - no go on that either. People were getting confused between the year of the class and the year the document was produced. So, what once was 060413_prnt_ltt_07 (right - that’s the letter we sent on April 13, 2006 to parents of the class of 2007) has reverted to Spring Junior Parent Letter. It does not sort as easily, I’ll have to rename it if I send it into the non-Mac world and want to be polite, I have to check the date modified to figure out what year I wrote it, etc. But at least my team is using the files again!

Greg's picture

For photo organization, my favorite...

For photo organization, my favorite program is Breezebrowser. Many here may already know it, but for those who don’t one of the most-used features is “batch rename”. It is fully customizable. For example, if I took a days-worth of photos in Chicago in one click it would rename all the photos, “YYYYMMDDTHHMMSS - PopCenterChicago.jpg”. Then in the future if you want to view the photos they are always in cronological order. In addition to places, I also have tags for photos with friends and family in them. It will be great 20 years from now when I have 20,000 jpgs!

Sven Fechner's picture

It took me quite a...

It took me quite a while to find my naming convention and eventually implement it in an consistent manner. I’ am down to a punctation approach which people that know development languages such as Java (or even JavaScript for that matter) may regconise.

clientname.project.artefact.version.fileextension which could look like this “John Doe.Strategy Map.Meeting Minutes 1110.v1.0.doc”. Yes, I’ am using spaces inbetween and love the ability of having quite long file names in Windows. If you adapt your view in the File Explorer accordingly and implement the naming convention consistenly it works perfect.

However, there are some occassions where you need to put in a little brain, especially when it comes down to internal or administrative files you need to name. But it still works out. Needless to say that I agree with one of the commenters before - also delete or overwrite old version of documents - in 90% of all cases there is no need for old versions. I do so by overwriting and changing the version number. That helps when you ask yourself the question ‘which version did I send to that guy? The filename is always indentical’. The date or age of the document is provided by Windows and you may change sorting in the File Explorer if you look for cronological order - no need to embed it into the filename.

d@vid's picture

Rules that I try to...

Rules that I try to apply:

1) Use one folder for one purpose. (e.g. all listenable files go into “My Music”)

2) Inside that purpose-folder, have only one level of additional folders. These should be logically sortable by name. I just like gigantic sortable lists of folders, I don’t know why. (e.g. within “My Music” all folders are named “artist - album”)

2.5) Alternate cases should still fit within the structure. (e.g. some of my catchall folders are “The White Stripes - De Stijl incomplete”, “Podcasts - various” and “mixed - various”)

3) Files should be logically sortable by filename. (e.g. my MP3s are named “tracknumber - tracktitle”)

Additional conventions:

a) When in doubt, add the date or a version number (yyyymmdd format, for sorting purposes, obviously) - I have no idea why people don’t see that they’ll need to do this, especially for documentation and periodic projects; maybe you have to get bitten by the problem to be aware of it in future.

b) I create meta-context folders to contain everything (“Projects”, “Share”, “Working”). If I can’t (e.g. Windows folder conventions, trying to make my own navigation for someone else’s folder system I don’t like), I create a meta-context folder with appropriately named shortcuts.

Other things:

i) I keep a number of incoming context/action folders (yup, 43F/GTD inspired) so I have somewhere to dump stuff I want to download now, but don’t have time to look at/archive nicely. My folders are “to watch” (unviewed videos, MP3s, documents), “to share” (to give to other people), “to archive” (ha! someday). I don’t really use my other folders: “to blog”, “to learn”, “to review”. Bad attitude, that.

Queries:

) Does anyone have any *Windows file-tagging software to recommend? I grow envious of all youse Mac users.

jr's picture

At work, we use a...

At work, we use a naming convention for documents that goes along the lines of

  • Client_Project_Document_YYYY-MM-DD_vx.y.ext

The folders are named similarly:

  • Client_Project

Spaces are replaced by “-“, in order to keep using “_” for separating parts of the name. This way, we always know to what project a file belongs, even if it is moved out of the folder. A complete filename might look like

  • IBM_Relaunch-WebSite-2007_Concept_2006-10-24_v1.1.pdf

The only gripe we sometimes have is w/ the points in the version number, but this is more cosmetic. Once you used this for some time, you wouldn’t miss it anymore.

TommyW's picture

I've used the following for...

I’ve used the following for over ten years. It works.

ProjectTLA Date(Year.Month.Day) ClientTLA Narrative

So I have a project Squizzle with client Citibank

SQZ 06.10.21 CIT project proposal SQZ 06.10.26 CIT meeting agenda SQZ 06.11.04 CIT minutes agreed SQZ 06.11.15 CIT First proofs …

The above is what I’d see in a Finder window. If I sort on name, it’s sorted by date as well.

I can search for the Project, I can search for date and I can search for the client easily.

I can also search easily across parameters, for Project AND a particular month etc.

The narrative section provides space for that urge to do that stuff and functions as a sort of short term memory trigger. Also, the progess of the project is visible in the narrative field.

I have many projects which span several years and it functions really well for searching through older project material. You can’t rely on Finders date assignments.

The one variant I permit myself is I always put invoices in as INV in the narrative with a space on either end. It’s handy to be able to search for all invoices ” INV “

Data Nuts!'s picture

How to name your files... ... ...

How to name your files…

Ari's picture

Use version control software, e.g....

  1. Use version control software, e.g. CVS. You avoid horrible filenames like project-v2-final-FINAL-no-really-i-mean-it-3.14159. CVS takes care of the numbering for you, and you can insert tags (“FINAL”) and comments (“whoops, the last version had a typo, so it’s not really final”) when you “check in” your project — all this information is kept in the CVS log and out of your filename. Basically, these kinds of filenames are ad-hoc version control systems. Instead, why not use a real version control system?

  2. Also, I try to apply the same GTD methodology to organizing my computer files that I apply to organizing my physical files. The purpose of filing things is to be able to find them — not to create a rigorous taxonomy of your personal universe (unless you’re a librarian or a zoologist). When I get a medical bill, I don’t worry about whether it should be filed under “bills”, “medical info”, “health insurance”, or some larger supercategory. I put it in a file called “medical bills” and file it alphabetically — and if I don’t have a file with that name, I whip out the ol’ labelmaker and make one. Similarly, I try to avoid folders within folders within folders, as that encourages the instinct to “categorize” rather than just put something where you can find it.

Technorama » Paintball Tanks!!!'s picture

[...] Vox Populi: Best practices...

[…] Vox Populi: Best practices for file naming via 43folders.com […]

Borderguy's picture

I try to use a...

I try to use a content manager/configuration manager whenever possible. These softwrae are far better at managing versions, forks, alternate indexes, etc. However, when those aren’t available, I use a system modified from the ISO/IEC and IETF standards naming conventions. The format is

name “_r” revision [“_final” | [“d” draft [“s” sequence]]] [“_v” volume] [“_u” update] [“_p” render] [“_n” notice [“a” annex]] [“_km” versioning]

The revision, draft, sequence, notice, annex, and versioning numbes are integers; and the volume, update and render are date-time stamps.

So, in practice, a filename would look like this:

fooey_r1d1s1_v20061024_u200610240614_p200610240615_n123a22_km1234.pdf

This tells me that file fooey.pdf is at revision 1, draft 1, sequence 1; it a periodic item (version number), updated once for that period, and rendered on a given date from an authoring file. The authoring file is identified by its project/notice number and annex within that project. Finally, because it was important, an absolute file number was added to index the file further.

Simple, no? (As the people roll their eyes.)

Ed's picture

I like a lot of...

I like a lot of these ideas, especially JennG’s. My “system” is extremely simple. I grew into computing with Macs, and therefore, I am all about long file names. [Windows back in the 8.3 days was painful for me to use.] Generally speaking, I try to be as self documenting as possible, so when I can, I try to make my file names as dummy proof as possible. Things like add_vendor.aspx or nav_bar.htm are all I need. I rely on my directory structure to organize things by project or major subject. And when it comes to version control, I do what most everyone else here does — I tack on a YYYYMMDD date. If I really need to get crazy, I will add on the time so it’s “stupid_name_200610240753.php” all the way. And instead of letting these versions accumulate and junk up my folders [I mean directories, …. my Mac background is showing], I usually add a subdirectory called “older” and dump all my old versions into it. Hardly the most scientifically rigorous system, but it works for me.

Jim's picture

Maybe it's just me, but...

Maybe it’s just me, but I think about this a lot less than I used to. I index EVRYTHING in desktop search and dump it into one or two obvious folders and then let Google Desktop search index those folders. At work, people constantly come to me to find things that they can’t find. Filing and sorting of the old-fashioned type mean a lot less when you index everything. I’m waiting for desktop search to get a little smarter and index things into virtual folders.

Markus's picture

I also use a date...

I also use a date system for file naming, but quite a simple one: Project contexts are defined by folder names, file names reflect the state the file is in. When I work on literary projects like a short story, the earlier drafts can become an important source of inspiration (and fun) later on. I rely on spotlight for finding stuff; usually it diggs up different versions of the file. Color Labels also play an important role here. I have five main folders for my files in my document folder(sorry for the clumsy translation):

1_current Projects project-related files, with relevant reference material (in folders) 2_Archive (with finished (sub-)projects etc…) 3_Someday,Maybe (e.g. training programs for my plan to get used to sport one day) 4_Templates (letters, angry letters, business cards, GTD list templates…) 5_Lit (short stories and the like which should not get confused with the rest)

Inside folder 1, I keep a seperate subset of folders for my current dissertation project, which I often transfer to an usb stick and back, when I work at the PC (sigh) at the office. I have aliasses of the main folders in the dock. I found that custom folder icons for these folders help me a lot when I look for them in the dock.

The files inside are named “YYMMDD enter_long_filename”. when there are multiple versions on one day, I add an optional “-a”, “-b”, or “-c” later on. I started this system after 2000, so two letters for the year are enough. Microsoft word is a problem here, because filename limitations only allow for “061024-b filename”.

By the way, when working with scientific literature, I label essays and other stuff I keep as a hardcopy with this system as well. I enter the number in Bookends, so I can create temporary citations with it. On each hardcopy, I note the bookends number, so that I don’t have to interrupt writing to look up things like “Allen, David (2001): Getting things done. p.53ff” but instead my note on the cover tells me to enter “{060514-a}, p.53ff”.

TommyW's picture

On Jim's point.... I think there's...

On Jim’s point….

I think there’s still an argument despite indexing software like GD or Spotlight for hierarchical folders and organisational structure.

It’s about different kinds of searches.

A very focussed search in mind? Sure, use Spotlight or GD.

A loose, browsing type of search? You’re better off going through your folders and seeing groupings and coming across items that you mightn’t have caught via an index keyword hunt.

It’s Active/Passive. The difference between seeking and finding…

nex's picture

here's a tip that will...

here’s a tip that will instantly make you more productive: don’t spend much time on trying to come up with the perfect file-name. now that we finally have fast desktop search, such as spotlight, there isn’t much to naming files. if you don’t want to read through this lengthy comment, here’s the essence in a nutshell: use a system that will work with your lazyness, in spite of your lazyness, something that doesn’t rely on you forcing yourself to play by tedous rules.

your main goals are that you want to find the one file you need quickly, and that you want to be able to handle groups of files efficiently. i.e. it’s good if you can quickly find that one folder that holds the 20 files you need, but you still have a problem if there are 1000 other files in the same folder and the only way to select the 20 you need is to hand-pick them. thus, you need such devices as tagging and grouping. folder organization can help a lot with that, especially with grouping. but if the files are, say, photos, and you use, say, iPhoto to manage them, there’s absolutely no need to handle tagging and grouping at the file system level. there’s nothing wrong with a folder holding 5000 files that all have names like ‘DSCN5867.JPG’. OTOH, if you’re saving a web page with an interview with richard dawkins, and you know you’ll want to use that file when you’re writing a book about religion in five years (when you won’t have the file on your computer any longer, but on some backup medium, so spotlight might not be able to see into it, but still know about its existence), it’s a good idea to call the file religion-dawkins-interview-god-delusion-fundamentalism.html. you might just as well call the file salon-interview-richard-dawkins-atheism-evolution-war.html. now that’s the part that doesn’t matter much, that you don’t want to spend much time thinking about.

thus my second tip is: don’t even try to come up with a system that covers all eventualities. your OS just isn’t there yet. use a proper versioning system for files that benefit from it, but don’t bog it down by throwing your whole MP3 collection in there as well. make sure your backup system keeps useful data like a file’s creation date or date of last edit intact. make sure MP3s carry the proper meta-data inside, photos the proper EXIF data, etc.

BUT, and this is my third and last tip regarding file naming: don’t concoct a complicated system that requires you to come up with file names according to some strict rules, such as topic-title-location-category-subcategory-date-time.extension. because the day will come, probably rather sooner than later, when you get sloppy with it. the day will come when you only have so much time to migrate to a new system, and you won’t be able to go through those folders called “unsorted”, “unsorted2”, “unsorted3” and “miscellaneous”, which you created when you didn’t have the time to name all those files properly just now.

personally, i have a folder structure for files that i created/edited myself, and in an ideal world i would back that up daily. another folder structure is for files that came from somewhere else, and i back that up monthly (approximately). the reasoning behind this division is this: if i lose an e-mail i wrote a week ago, it’s gone. but if i lose NiftyToolX.app that i downloaded a week ago, i can download it again; all i need is my browser history with the download link, and the configuration file with my personal preferences, and those are files that i created/edited myself (not directly, but it’s still data no one else has, that’s the important point here), thus they are in my daily backup.

within these folder structures, i do what i call successive refinement by letting files trickle down the hierarchy. if i’m in a hurry and don’t want to take the time, just now, to decide whether NiftyToolX.app has to go in applications/graphics/pixel, or applications/graphics/vector, or applications/tool/display, i can at least confidently throw it into the ‘applications’ folder, so at least it won’t sit on my desktop and clutter that up. next time when i look at that applications folder and am not in a hurry, i can move it deeper into the structure. but of course a hierarchial system has its limits, it doesn’t handle items that belong in multiple categories. this is just to make sure that when i’m looking for the driver for my graphics tablet, while i won’t be sure whether it’s on the “drivers” CD-R or the “OS” CD-R, i can at least rule out the “movies” and “games” media and don’t have to search them as well.

now, if spotlight was only able to search media that aren’t currently mounted. iPhoto, iTunes, etc. suffer the same illness, as does time machine. the idea that all my data should be mounted on my puny iBook is just plain stupid. i really want to index all of that … suggestions, anyone?

Joe's picture

I use Stardock's keepsafe. ...

I use Stardock’s keepsafe.

http://www.stardock.com/products/keepsafe/

It AUTOMATICALLY keeps versions of all file formats it knows about (.doc, .xls, etc — lots of em) so I can keep a single document name. Need an old version? Right-click on the file, and choose which one you want to see. Excellent and NO WORK.

Jeremiah Staes's picture

I have been using a...

I have been using a file system semi-like Bens’ for awhile, because yes, it really does work well in practice; however, the reason I fell into a parallel (not as good version) of Ben’s system is that system will be very familiar to anyone who’s worked in video or multimedia, as there is an inherent need to have an extremely logical way to catalog a veritable plethora of files.

I’ve taken it over to the rest of our biz with a lot of success, and oddly even more so than fifty thousand folders because they can run a search for a date or a keyword and it increases results. However I must warn that some long names when ported to Windows servers like to mangle - and append with some whack number such as “#29” or #353658654612” or “#screw_your_long_file_names_you_mac_or_linux_person”

pm215's picture

I have to agree with...

I have to agree with Avi here about using some sort of version control system (as I’m sure did most of the other programmers reading this…). This is so much better than trying to stuff some sort of version information into the filename. And it’s ten times as important as soon as there’s more people than just you working on whatever it is. (I’m afraid the system airship describes for group working horrified me. Eventually somebody is going to screw up, delete files they shouldn’t have done or upload an accidentally out-of-date file, and you’re stuffed (assuming you even noticed…))

The only downside is that the traditional version control systems are rather optimised for the sorts of files programmers care about (plain text of various kinds) and although they will hold binary junk you can’t do the useful “what changed between these two versions?” or “who put this line in this file?” operations. But even then you get the audit trail of “who changed this? when? what did they think they were doing?”, you can back stuff out and the system prevents two people accidentally messing up each others’ changes.

Solo's picture

Mostly website maintainence: In every project...

Mostly website maintainence:

In every project sub folder there is a separate folder called WORK where I keep the original versions of graphics, html pages etc. This is another “leave the must have keys on top of your underwear” kind of hack, but it helps me find source material when my 5 billionth update has broken html or whatever.

I date updates in new folders that then go into a master folder. So Brand Ecch is the main folder. Ecch 52506 is the folder I then look for Boss.tiff for the image of the Boss which he now needs repurposed for print even though I posted a downsampled jpg on the site.

A search for “Boss” is simple. This is a simple practice but it is amazing to me how many times I wind up being glad I kept it TRUSTED and a bit DUMB

About Merlin Mann

Merlin Mann's picture

Bio

Merlin Mann is an independent writer, speaker, and broadcaster. He’s best known for being the guy who started the website you’re reading right now. He lives in San Francisco, does lots of public speaking, and helps make cool things like You Look Nice Today. Also? He looks like this, answers questions, and has something like a life.

 
EXPLORE 43Folders THE GOOD STUFF

An Oblique Strategy:
Distorting time


STAY IN THE LOOP:

Subscribe with Google Reader

Subscribe on Netvibes

Add to Technorati Favorites

Subscribe on Pageflakes

Add RSS feed

The Podcast Feed

Inbox Zero

The original 43 Folders series looking at the skills, tools, and attitude needed to empty your email inbox — and then keep it that way. Don’t miss the free video of Merlin’s Inbox Zero presentation.

Making Time

3-part series on attention management for artists and makers. Read Bad Correspondence, The Job You Think You Have, and One Clear Line.