Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

All file systems I've encountered have been based on folders - you have a root folder, which contains files and subfolders, which in turn contains files and subfolders, and so on.

Is there a better alternative to organizing files, and will it replaced the current system any time soon? Feel free to include some history about file systems, if you judge that's in order in your answer.

Interpret the term "better" any way you please.

share|improve this question

put on hold as too broad by MichaelT, gnat, gbjbaanb, Snowman, Justin Cave 2 hours ago

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

A full file path is nothing but a unique name to me and a folder is a file name with a wildcard that potentially lists files starting with that name. I don't think of a dictionary as hierarchical just indexed and sorted. Searching is great when you know what to look for. Chronological comes in handy if you know when a file was last/first used. Tags are a nice way to organize a single file in more than one way. At some point, you are stuck browsing for the file. Traversing a tree is fine in most cases. – JeffO 54 mins ago

Is there a better alternative to organizing files,


will it replaced the current system any time soon?


You can't replace the hierarchy as a way to organize concepts.

All file systems have hard links: the current file systems are not hierarchical.

People use them that way because people like that.

However, the file system is a "networked" database (not a hierarchical one). We just don't make much use of the network capabilities for one obvious reason. Anything other than a simple hierarchy is confusing.

share|improve this answer
Great answer, thanks. – Tamás Szelei Mar 17 '11 at 10:34
Sort to say whichever underlying implementation there'll be, if nothing, we'll always use a hierarchical structure to organize our own files at least. – Filip Dupanović Mar 17 '11 at 10:40
hard links are forbidden to form cycles, so it's still hierarchy (not a tree though). – vartec Mar 17 '11 at 10:41
-1 Because you need to qualify and explain the "better" system, instead of just saying "yes" – Darknight Mar 17 '11 at 10:54
I don't understand how a folder-based file system is not a hierarchical system. Could you please explain further? – gablin Mar 17 '11 at 21:47

I don't think so, since there have been some attempts (e.g. WinFS), which all have been killed off. The "folder" structure is very common hierarchical structure. I can be viewed as taxonomy. I feel that it's a natural way to organize resources.

On the other hand, you can have front end views, like "recent files" or "all my music". But there is no real reason to implement that on low level, in the filesystem itself. You can have data structure for that build on top of the hierarchical filesystem.

share|improve this answer

I think the folder based, tree-like file system is common but it's not the best. Indeed i believe a good classification of a file is better than to place a file in a certain 'place' e. g. folder.

Files are different in content and so, a mp3-file contains different meta information compared to let's say a png-file. Shown in a list with columns a problem occurs, just columns like size, creation-date etc. are in common.

If you look at windows explorer for example, the columns change when certain file types are detected. If you habe lot's of mp3-files in a directory for example, columns like Album, Title etc. occur. If amongst these files there is a png-file, these columns/cells don't make sense for that particular file/row.

I have found out that many times it would make sense, to place a file into more than one folder, just because there are more than one classification properties that identify the file. But why should a 'place', a 'folder' classify a file?

If i have a car, it doesn't matter if it is in the garage, in a parking lot or elsewhere, it's not the 'place' that identifies my car, but it's properties.

When all my files are classified properly and accurate by meta-data, it doesn't mind where it is stored, it's just in some 'cloud'. If i need to obtain a certain file, this should be done by specifications of the meta-data.

share|improve this answer

Some experimental operating systems don't even have any files. They have some orthogonal peristence machinery. Look at some academic OS projects (Coyotos, Grasshopper, etc...).

And old Lisp Machines in the 1980s might also had no file systems as we know them today.

The inactive site had some discussions (from the previous century) about OS without files.

The issue with non-file based OSes is that they need to re-implement everything; even a C compiler needs some filesystem.... And sadly, there are few economical incentives to develop such an OS from scratch. Notice however that our terabyte disks are a dirty mess (hierarchical file systems are not the best way to organize data in them), and it would be great if we could have something better than Unix inspired file systems (which have been copied in Windows).

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.