Portable Notebooks and Filenames[]
- To: mathgroup at smc.vnet.net
- Subject: [mg57869] Portable Notebooks and Filenames[]
- From: frank <frank at kuesterei.ch>
- Date: Sat, 11 Jun 2005 03:35:24 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi, in our group we are using Mathematica both on Windows and on Linux (and I'm about to convert a MacAddict to Mathematica). However, we are facing one problem with external file names. It is possible to use In[1]:= SetDirectory["some/directory/subdirectory"]; (from a syntax point of view; of course the beginning of the string will be different, like ~/netdrive vs. w:) On the other hand, this works only on Linux: In[2]:=FileNames["subdir/*"] while on Windows, only this construct works: In[3]:=FileNames["subdir\\*"] (\ needs to be escaped because \* or nearly any \<letter> combination has some meaning). This is weird - first because Windows understands the forward slash as a directory separator, and second because it means we have to do search-replace orgies when trying a notebook on a different OS. This would not only happen in a preamble part, but we even have some functions that read all data in a subdirectory, for a list of subdirectories. Is there a way to write such expressions portable? Is there, for example, an internal variable "directory separator" that could be used in this string? Alternatively, if it's possible to replace \\ by / (and vice versa) by some string matching mechanism, we could write a function that does this if some boolean is set once in the notebook, or even depending on some internal variable that indicates the OS? Regards, Frank -- Frank Küster Inst. f. Biochemie der Univ. Zürich Debian Developer