MathGroup Archive 2000

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

Search the Archive

Re: Re: Command to get a notebook's directory?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg22994] Re: [mg22978] Re: [mg22927] Command to get a notebook's directory?
  • From: John Fultz <jfultz at wolfram.com>
  • Date: Mon, 10 Apr 2000 02:22:25 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Yes, an approach using NotebookDirectory is incorrect and would cause
bugs with certain usage patterns.

NotebookDirectory gets a global option in the front end.  This global
option is set every time you use the File->Open... command to open
a notebook and happens to be set to the directory to which you last
opened (or saved using Save As...) a notebook file.  This, however, is
not necessarily the same thing as the directory in which a particular
notebook exists.

Example...
  You open up c:\dir1\notebook1.nb using File->Open...
	NotebookDirectory will be set to c:\dir1
  You open up c:\dir2\notebook2.nb using File->Open...
	NotebookDirectory will be set to c:\dir2

Now, you want to know the notebook that notebook1.nb (still open) resides
in.  You can only get that information via NotebookInformation.

Note that you can also open up a notebook in such a way as to not even
set the NotebookDirectory option.  For example, if you open a notebook
in the File->Notebooks menu (which records recently opened notebooks),
the NotebookDirectory option will not be set.

Now, on the other hand, you have to keep in mind that
NotebookInformation[] will not always return a "FileName" option.  It will
only do so if the notebook has been given a name (i.e. saved to disk).
If you evaluate NotebookInformation[] in a new notebook, no "FileName"
option will be returned.

Sincerely,

John Fultz
jfultz at wolfram.com
User Interface Group
Wolfram Research, Inc.


> Adalbert/John,
> 
> Thanks to both of you for your reply.   Between the time I wrote my message
> and the time you replied I also (after quite a bit of time!) came up with
> the following
> 
>   ToFileName[ NotebookDirectory /. Options[$FrontEnd,
> NotebookDirectory][[1]] ]
> 
> Since you both used the NotebookInformation[] function, I am wondering if
> there is any reason my approach may be buggy.  Is there any hidden problems
> in doing it my way?
> 
> Thanks,
> 
> Jordan
> 
> "Adalbert Hanssen" <hanssen at zeiss.de> wrote in message
> news:8ck0rd$g59 at smc.vnet.net...
> > Hi,
> >
> > according to [mg20941], the solution is
> >
> > ToFileName[First["FileName" /.
> >                   NotebookInformation[EvaluationNotebook[]]
> >                 ] /. $RootDirectory->""
> >           ]
> >
> > greetings
> >
> > Adalbert
> >
> 
> 
> 



  • Prev by Date: Re: M4 Problems with Initialization Cells
  • Next by Date: Re: list manipulation, mean value
  • Previous by thread: Re: Command to get a notebook's directory?
  • Next by thread: Re: Re: Command to get a notebook's directory?