DMUG-Archiv 1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Re: Mathematica-Funktion fuer Verzeichnis der aktuellen Datei???

rk@XXXXXXX.com (Reinhold Kainhofer) schrieb:
>   Ich stehe vor folgendem Problem: In einem Mathematica-Notebook
> moechte ich alle Dateinamen in einem Unterverzeichnis des Notebooks
> anzeigen. (Ich verwende Ihre Funktion directoryList aus
> ProgrammingInMathematica.) Dazu benötige ich jedoch den Dateinamen
> (bzw. das Verzeichnis) des aktuellen Notebooks. Gibt es in Mathematica
> eine Funktion, die den den Pfad des Notebooks zurueckgibt?  

Da diese Frage wohl von allgemeinem Interesse ist, sende ich diese
Antwort auch an DMUG.

Eine solche Funktion gibt es, ist aber nicht dokumentiert.
So bekommen Sie die Datei, die zum aktuellen Notebook gehört:

In[2]:=
NotebookInformation[EvaluationNotebook[]]

Out[2]=
{"FileName"\[Rule]FrontEnd`FileName[{$RootDirectory,"home","bellatrix",
        "maeder"},"DemoNotebook.nb"],"FileModificationTime"\[Rule]865266696,
  "MemoryModificationTime"\[Rule]26845}

Jetzt können sie den Dateinamen extrahieren. Vorsicht: "FileName" ist ein
String, kein Symbol, was man ja normalerweise nicht sieht.

In[3]:=
"FileName" /. %

Out[3]=
FrontEnd`FileName[{$RootDirectory,"home","bellatrix","maeder"},
  "DemoNotebook.nb"]

Es ist nicht schwer zu erraten, was $RootDirectory ist (ich habe
das auf einem Unix-System erzeugt).
Die Hüllen FrontEnd`FileName und FileName erleichtern die systemunabhängige
Beschreibung von Dateinamen. Wenn Sie das Verzeichnis (die Liste im ersten
Argument) als String brauchen, können Sie folgendes machen:

In[4]:=
%3/.FrontEnd`FileName[dir_List,_]:>ToFileName[dir]

Out[4]=
"/home/bellatrix/maeder/"

Oder Sie verwandeln den ganzen Dateinamen in einen String:

In[8]:=
ToFileName[%3]

Out[8]=
"/home/bellatrix/maeder/DemoNotebook.nb"

Irgendwann in der Zukunft werden diese FileName[{verzeichnisse...},name]-
Objekte auch von Funktionen wie OpenRead[], Get[] etc. verstanden werden,
aber zur Zeit noch nicht.

mit freundlichen Grüßen,

Roman Mäder



Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 08.09.2003 20:44