Re: Command to get a notebook's directory?
- To: mathgroup at smc.vnet.net
- Subject: [mg22942] Re: [mg22927] Command to get a notebook's directory?
- From: John Fultz <jfultz at wolfram.com>
- Date: Fri, 7 Apr 2000 02:54:27 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
> Hi all,
>
> This seems like a pretty simple question, but I am having the hardest time
> finding the answer. Let's say I save a notebook in a directory called
> "c:\myfiles\mynotebooks". Is there a command I can use from within this
> notebook to determine this directory?
>
> The purpose is to have an Export command that is able to export data to the
> same directory in which the notebook is saved. If I move the notebook, I
> don't want to have to manually change the Export command.
>
> The Directory[] command gives the working directory, which is not
> necessarily the same as the notebook's directory.
>
> Thanks,
>
> Jordan
This information is provided by the function NotebookInformation[], which
is documented but not very thoroughly. For example...
n[35]:= NotebookInformation[EvaluationNotebook[]]
Out[35]= {"FileName" ->
FrontEnd`FileName[{$RootDirectory, "G:", "TEMP"}, "AngleGrid.nb",
CharacterEncoding -> "WindowsANSI"],
"FileModificationTime" -> 3.115662974`*^9,
"WindowTitle" -> "AngleGrid.nb",
"MemoryModificationTime" -> 3.163999969578125`*^9}
Note the "FileName" option here, which can be picked out and surgically
altered to get the path information. The code below is one way you
could do it...
ToFileName[
FrontEnd`FileName @@
HeldPart["FileName" /. NotebookInformation[EvaluationNotebook[]], 1]]
For obvious reasons, this will not work on a notebook which has not
been saved yet (i.e. an untitled notebook).
Sincerely,
John Fultz
jfultz at wolfram.com
User Interface Group
Wolfram Research, Inc.