Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Colon/Asterisk as a filename delimiter?

I'm looking for a character to use a filename delimiter (I'm storing multiple filenames in a plaintext string). Windows seems not to allow :, ?, *, <, >, ", |, / and \ in filenames. Obviously, \ and / can't be used, since they mean something within a path. Is there any reason why any of those others shouldn't be used? I'm just thinking that, similar to / or \, those other disallowed characters may have special meaning that I shouldn't assume won't be in path names. Of those other 7 characters, are any definitely safe or definitely unsafe to use for this purpose?

like image 653
Smashery Avatar asked Nov 03 '09 07:11

Smashery


1 Answers

The characters : and " are also used in paths. Colon is the drive unit delimiter, and quotation marks are used when spaces are part of a folder or file name.

The charactes * and ? are used as wildcards when searching for files.

The characters < and > are used for redirecting an application's input and output to and from a file.

The character | is used for piping output from one application into input of another application.

I would choose the pipe character for separating file names. It's not used in paths, and its shape has a natural separation quality to it.

An alternative could be to use XML in the string. There is a bit of overhead and some characters need encoding, but the advantage is that it can handle any characters and the format is self explanatory and well defined.

like image 101
Guffa Avatar answered Sep 22 '22 18:09

Guffa