Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Comment about SetDirectory[]

47 views
Skip to first unread message

McHale, Paul

unread,
May 18, 2013, 2:38:05 AM5/18/13
to
I have often wondered whether to use:

SetDirectory[NotebookDirectory[]]
Export["TestResultTime.txt", mTimeDiff, "Table"]

or

Export[NotebookDirectory[] <> "TestResultTime.txt", mTimeDiff, "Table"]

I have left Mathematica open for 2 days as it was running a very long test. Maybe something became corrupted. The first method did not work. It appears SetDirectory[] simply stopped functioning. Personally, I think the second method is better since it is atomic in nature. It doesn't depend on any stateful settings.

Has anyone else had this issue?

Thanks,

Paul McHale | Electrical Engineer, Energetic Systems | Excelitas Technologies Corp.

Office: +1 937.865.3004 | Fax: +1 937.865.5170
1100 Vanguard Boulevard, Miamisburg, OH 45342-0312
Paul....@Excelitas.com
www.excelitas.com


Alexey Popkov

unread,
May 21, 2013, 12:02:47 AM5/21/13
to
Hi Paul,

I would not recommend to use the

Export[NotebookDirectory[] <> "TestResultTime.txt", mTimeDiff, "Table"]

form if you are exporting many such files because NotebookDirectory[]
sometimes (approximately one time in 500 exports in one of my programs)
returns nothing and the file is exported to the default directory.

As to your case I think it is possible that SetDirectory[] worked but
NotebookDirectory[] failed... I would recommend to check the output of
NotebookDirectory[] with StringLength.

With best wishes,
Alexey

Alexey Popkov

unread,
May 21, 2013, 12:02:18 AM5/21/13
to
Hi Paul,

I would not recommend to use the

Export[NotebookDirectory[] <> "TestResultTime.txt", mTimeDiff, "Table"]

form if you are exporting many such files because NotebookDirectory[]
sometimes (approximately one time in 500 exports in one of my programs)
returns nothing and the file is exported to the default directory.

As to your case I think it is possible that SetDirectory[] worked but
NotebookDirectory[] failed... I would recommend to check the output of
NotebookDirectory[] with StringLength.

with best wishes,
Alexey



"McHale, Paul" wrote:kn77kd$8ig$1...@smc.vnet.net...

John Fultz

unread,
May 22, 2013, 2:18:27 AM5/22/13
to
I've never heard of or seen Alexey's issue before. However, it is the
case that NotebookDirectory[] will return $Failed if you execute
NotebookDirectory[]:

* in a notebook which hasn't been saved to disk, and therefore doesn't
have a notebook.
* in an evaluation which wasn't directly triggered by a specific
notebook, such as a ScheduledTask.

John Fultz
jfu...@wolfram.com
User Interface Group
Wolfram Research, Inc.



On May 20, 2013, at 11:02 PM, "Alexey Popkov" <leh...@gmail.com> wrote:

> Hi Paul,
>
> I would not recommend to use the
>
> Export[NotebookDirectory[] <> "TestResultTime.txt", mTimeDiff, "Table"]
>
> form if you are exporting many such files because NotebookDirectory[]
> sometimes (approximately one time in 500 exports in one of my programs)
> returns nothing and the file is exported to the default directory.
>
> As to your case I think it is possible that SetDirectory[] worked but
> NotebookDirectory[] failed... I would recommend to check the output of
> NotebookDirectory[] with StringLength.
>
> with best wishes,
> Alexey
>
>
>
> "McHale, Paul" wrote:kn77kd$8ig$1...@smc.vnet.net...
>

Alexey Popkov

unread,
May 22, 2013, 2:18:32 AM5/22/13
to
John,

The case I had mentioned is related to creating an animation based on
Dynamic interface. I know that it is not straightforward way but it was
simplest since I originally made a Dynamic presentation and the easier way
was just Export a Table of frames each has different value of a time-related
parameter (which was Dynamic). I had about 2500 such GIF frames in my
exported animation and I recreated them several times while I polished my
animation. And I did not change my Export code: file path was always started
with "NotebookDiretory[]<>...". And finally I found about 5 of about each
2500 exported frames in the documents directory on disk C:\ (I always place
my documents on disk D:\ and here was placed the evaluating notebook). All
other frames was exported to requested location on disk D:\. The missing
(unexpectedly exported to the documents directory on disk C:\) frames result
in significant damage of my animation.

Sincerely,
Alexey


-----Original message-----
From: John Fultz
Sent: Tuesday, May 21, 2013 8:51 PM
To: Alexey Popkov
Cc: math...@smc.vnet.net
Subject: Re: Comment about SetDirectory[]

I've never heard of or seen Alexey's issue before. However, it is the case
that NotebookDirectory[] will return $Failed if you execute
NotebookDirectory[]:

* in a notebook which hasn't been saved to disk, and therefore doesn't have
a notebook.
* in an evaluation which wasn't directly triggered by a specific notebook,
such as a ScheduledTask.

John Fultz
jfu...@wolfram.com
User Interface Group
Wolfram Research, Inc.



On May 20, 2013, at 11:02 PM, "Alexey Popkov" <leh...@gmail.com> wrote:

> Hi Paul,
>
> I would not recommend to use the
>
> Export[NotebookDirectory[] <> "TestResultTime.txt", mTimeDiff, "Table"]
>
> form if you are exporting many such files because NotebookDirectory[]
> sometimes (approximately one time in 500 exports in one of my programs)
> returns nothing and the file is exported to the default directory.
>
> As to your case I think it is possible that SetDirectory[] worked but
> NotebookDirectory[] failed... I would recommend to check the output of
> NotebookDirectory[] with StringLength.
>
> with best wishes,
> Alexey
>
>
>
> "McHale, Paul" wrote:kn77kd$8ig$1...@smc.vnet.net...
>

W Craig Carter

unread,
May 23, 2013, 3:52:35 AM5/23/13
to

I've seen one other case.
It was when the directory containing NotebookDirectory[] was deleted (by someone else on a shared disk).

For example,
temp.nb is written to ~/tmp/foo.
~/temp/foo is deleted with the notebook still open (a warning is dialog comes up.)
But:
NotebookDirectory[]
yields:
"/Users/ccarter/tmp/foo/"

Export[NotebookDirectory[] <> "file.m", "test"]
throws:
Export::nodir: "Directory \!\(\"/Users/ccarter/tmp/foo/\"\) does not exist"
Export::noopen: "Cannot open \!\(\"/Users/ccarter/tmp/foo/file.m\"\)."
and returns:
$Failed

This is a perverse example, but still possible. If something similar happened (disk dismounted, remounted) in the middle of Paul's writing a sequence of files, he would get a failure.



W Craig Carter
Professor of Materials Science, MIT



On May 22, 13, at 2:19 AM, John Fultz wrote:

> I've never heard of or seen Alexey's issue before. However, it is the
> case that NotebookDirectory[] will return $Failed if you execute
> NotebookDirectory[]:
>
> * in a notebook which hasn't been saved to disk, and therefore doesn't
> have a notebook.
> * in an evaluation which wasn't directly triggered by a specific
> notebook, such as a ScheduledTask.
>
> John Fultz
> jfu...@wolfram.com
> User Interface Group
> Wolfram Research, Inc.
>
>
>
> On May 20, 2013, at 11:02 PM, "Alexey Popkov" <leh...@gmail.com> wrote:
>
>> Hi Paul,
>>
>> I would not recommend to use the
>>
>> Export[NotebookDirectory[] <> "TestResultTime.txt", mTimeDiff, "Table"]
>>
>> form if you are exporting many such files because NotebookDirectory[]
>> sometimes (approximately one time in 500 exports in one of my programs)
>> returns nothing and the file is exported to the default directory.
>>
>> As to your case I think it is possible that SetDirectory[] worked but
>> NotebookDirectory[] failed... I would recommend to check the output of
>> NotebookDirectory[] with StringLength.
>>
>> with best wishes,
>> Alexey
>>
>>
>>
>> "McHale, Paul" wrote:kn77kd$8ig$1...@smc.vnet.net...
>>

Helen Read

unread,
May 23, 2013, 3:54:17 AM5/23/13
to
Did you not try SetDirectory[NotebookDirectory[]]
to set it once and be done with it?

Alexey Popkov

unread,
May 24, 2013, 5:24:20 AM5/24/13
to
Yes, SetDirectory[NotebookDirectory[]] works nice for me. After changing the
Export code (removing NotebookDiretory[]<>) and setting directory with
SetDirectory[NotebookDirectory[]] I have no more problems with files placed
at wrong location.


"Helen Read" wrote:knkhv9$idq$1...@smc.vnet.net...
0 new messages