Erlang Central

Split File Path

Revision as of 15:37, 14 June 2007 by DatesPinard155 (Talk | contribs)

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"]