Erlang Central

Split File Path

Revision as of 02:39, 4 September 2006 by Bfulgham (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Problem

You want to split a path into all of its components.

Solution

The split function in the Erlang standard library module file will do this.

1> filename:split("C:\\winnt\\system32\\drivers\\etc").
["c:/","winnt","system32","drivers","etc"]

Discussion

You may want to find the path from the root directory to the item of interest. To do so, you will need to convert any relative pathnames to absolute path names, using the filename:absname function:

1> filename:split( filename:absname( "..\\..\\winnt\\system32\\drivers\\etc" )).
["c:/",
 "Program Files",
 "erl5.3.6.3",
 "..",
 "..",
 "winnt",
 "system32",
 "drivers",
 "etc"]