MathGroup Archive 2010

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

Search the Archive

Re: Bare Bones Backup Button

  • To: mathgroup at
  • Subject: [mg111710] Re: Bare Bones Backup Button
  • From: telefunkenvf14 <rgorka at>
  • Date: Wed, 11 Aug 2010 04:46:06 -0400 (EDT)
  • References: <i368lp$r56$>

On Aug 2, 6:03 am, Murray Eisenberg <mur... at> 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.

This code might interest you:

Package: Sidebar` (By Yuri E. Kandrashkin)

The package Sidebar` includes several interactive tools to control, to
navigate, and to trace notebook changes.
Main properties of Sidebar` palettes include:

- Navigation between the arbitrary selected places in the notebooks
- Automatic preserving of the notebook modified cells
- Notebook clearing, backuping etc.
- Generation of the active table of contents (TOC)
- Work with the group of choosen sections/subsections of the notebook
(selection, evaluation, hiding, revealing)
- Clipboard stack
- Symbol information window
- Tracing graphics coordinates and the evaluation time
- Easy access to special notebooks (ToDo, Memo, Code)
- Few more functions, like comparing of two cells of the notebook,
locking/unlocking etc


> 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[thisn=
>               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                     mur... at math.umas=
> Mathematics & Statistics Dept.
> Lederle Graduate Research Tower      phone 413 549-1020 (H)
> University of Massachusetts                413 545-2859 (=
> 710 North Pleasant Street            fax   413 545-1801
> Amherst, MA 01003-9305

  • Prev by Date: mathematica mistake in solving some problems
  • 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