MathGroup Archive 2010

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

Search the Archive

Re: Bare Bones Backup Button

  • To: mathgroup at smc.vnet.net
  • Subject: [mg111652] Re: Bare Bones Backup Button
  • From: David Reiss <dbreiss at gmail.com>
  • Date: Mon, 9 Aug 2010 05:12:56 -0400 (EDT)
  • References: <i3m3v4$hkb$1@smc.vnet.net>

On Aug 8, 7:21 am, Murray Eisenberg <mur... at math.umass.edu> wrote:
> 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  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 ca=
n
> >> think of two methods:
>
> >> (1) Include a separate test as to whether that directory already exist=
s
> >> 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 na=
me
> >> and second, if the file exists, FileType to check that it's a director=
y.
> >>     That seems to be getting unduly complicated.
>
> >> Method (2) in principle seems simpler, and perhaps wrapping Quiet arou=
nd
> >> the entire body of the Module (which is an extended If expression) wou=
ld
> >> do the trick. But this would also suppress other messages that one mig=
ht
> >> 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 so=
me
> >> 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/.AbsoluteOption=
s[thisnb]),
> >>                 s_~~".nb"->s],"_",
> >>             StringJoin[ToString/@ Round/@ Rest[Date[]]],".=
nb"];
> >>           Export[
> >>             ToFileName[{"e:/backups","MmaBareBones"},filen=
ame],
> >>             DeleteCases[NotebookGet[thisnb],Cell[_,"Output=
",___],
> >>               Infinity]]]]],
> >>        Saveable->True]]
>
> --
> Murray Eisenberg                     mur... at math.umas=
s.edu
> Mathematics & Statistics Dept.
> Lederle Graduate Research Tower      phone413 549-1020(H)
> University of Massachusetts                413 545-2859(W=
)
> 710 North Pleasant Street            fax  413 545-1801
> Amherst, MA 01003-9305

DirectoryQ is new in version 7


  • Prev by Date: Re: Suggestions
  • Next by Date: Re: A new graphic user interface
  • Previous by thread: Re: Bare Bones Backup Button
  • Next by thread: Re: Bare Bones Backup Button