MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

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


  • Prev by Date: Re: Exporting mathematica equations into MathType
  • Next by Date: Re: Re: a question about subscript
  • Previous by thread: Reducing memory for big data sets
  • Next by thread: Re: Portable Notebooks and Filenames[]