MathGroup Archive 2010

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

Search the Archive

Re: Bare Bones Backup Button

  • To: mathgroup at
  • Subject: [mg111517] Re: Bare Bones Backup Button
  • From: David Annetts <david.annetts at>
  • Date: Wed, 4 Aug 2010 05:47:52 -0400 (EDT)

  Hi Murray,

There is DirectoryQ ...

If[Not@DirectoryQ[target], CreateDirectory@target];


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]]

  • Prev by Date: Re: Issuing Function Calls within a Plot command
  • Next by Date: Re: AxesLabel parallel to 3D axes?
  • Previous by thread: Re: Bare Bones Backup Button
  • Next by thread: Re: Bare Bones Backup Button