MathGroup Archive 2010

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

Search the Archive

Re: Bare Bones Backup Button

  • To: mathgroup at smc.vnet.net
  • Subject: [mg111632] Re: Bare Bones Backup Button
  • From: Murray Eisenberg <murray at math.umass.edu>
  • Date: Sun, 8 Aug 2010 07:21:22 -0400 (EDT)

DirectoryQ works nicely here. I'm surprised it wasn't used in the 
originally posted code for BareBonesBackup (perhaps the function didn't 
exist then?).

On 8/4/2010 5:47 AM, David Annetts wrote:
>    Hi Murray,
>
> There is DirectoryQ ...
>
> If[Not@DirectoryQ[target], CreateDirectory@target];
>
> D.
>
> On 2/08/2010 19:03, Murray Eisenberg wrote:
>> An exchange reported in [mg77581] between DrMajorBob and Selwyn Hollis
>> culminated, in essence, in the code below for creating a saveable
>> palette with a button to back up the InputNotebook.
>>
>> If the target directory for the backup (fixed in the code that creates
>> the palette) already exists, then each time I click the button, I get an
>> unwanted message
>>
>>      CreateDirectory::filex : ... already exists
>>
>> in the Messages window.
>>
>> What is the best way to modify the code so as avoid that message? I can
>> think of two methods:
>>
>> (1) Include a separate test as to whether that directory already exists
>> and, if so, by-pass the CreateDirectory phase; or
>>
>> (2) Somehow trap the CreateDirectory so as to eliminate the message.
>>
>> For Method (1), how does one tell whether a directory exists? I don't
>> find a single function that does it. All I can see is to use first
>> FileExistsQ to see if there's some file with the target directory's name
>> and second, if the file exists, FileType to check that it's a directory.
>>     That seems to be getting unduly complicated.
>>
>> Method (2) in principle seems simpler, and perhaps wrapping Quiet around
>> the entire body of the Module (which is an extended If expression) would
>> do the trick. But this would also suppress other messages that one might
>> want to see, such as when the directory does not already exist but for
>> some reason cannot be created; or that the directory exists but for some
>> reason is not writable; etc.
>>
>> Suggestions?
>>
>> The code:
>>
>> CreateDocument[PaletteNotebook[Button["Bare Bones Backup",
>>      Module[{filename,thisnb=InputNotebook[]},
>>        If[thisnb=!=$Failed,
>>           CreateDirectory[
>>             ToFileName[{"e:/backups","MmaBareBones"}]];
>>           filename=
>>             StringJoin[
>>               StringReplace[(WindowTitle/.AbsoluteOptions[thisnb]),
>>                 s_~~".nb"->s],"_",
>>             StringJoin[ToString/@ Round/@ Rest[Date[]]],".nb"];
>>           Export[
>>             ToFileName[{"e:/backups","MmaBareBones"},filename],
>>             DeleteCases[NotebookGet[thisnb],Cell[_,"Output",___],
>>               Infinity]]]]],
>>        Saveable->True]]
>>
>

-- 
Murray Eisenberg                     murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305


  • Prev by Date: Re: Combine these displays
  • Next by Date: Re: Suggestions
  • Previous by thread: Re: Bare Bones Backup Button
  • Next by thread: Re: Bare Bones Backup Button