proposal: expand definition of filename type

James Hague james.hague@REDACTED
Thu Sep 3 17:36:26 CEST 2009


I've found that sometimes it's handy to have filenames as lists--which
is the Erlang standard--and sometimes it's nice to treat them as
binaries.  So here's a proposal: In file access functions, define a
filename to be a binary or an IO list.

Examples:
1. file:file_open(<<"circus/images/clown.png">>, []).
2. file:file_open([Directory, BaseName, ".dat"], []).

Advantages:
* Filenames, which can potentially be long, don't expand into 8 or 16
bytes per character.  (Think of code that manipulates a huge directory
tree, for example.)
* It's easy to add path names and extensions without copying entire lists.

Open questions:
* Just keep the filename module operating on lists?
* Should there be an alternate version of file:list_dir that returns a
list of binaries?

Note that there shouldn't be any compatibility issues, because lists
are a subset of IO lists.


More information about the erlang-questions mailing list