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. »

”What’s 43 Folders?”
43Folders.com is Merlin Mann’s website about finding the time and attention to do your best creative work.

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.

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.

The best thing Merlin’s ever written is a short essay called, “Better.”

 
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.