Re: Bare Bones Backup Button
- To: mathgroup at smc.vnet.net
- Subject: [mg111710] Re: Bare Bones Backup Button
- From: telefunkenvf14 <rgorka at gmail.com>
- Date: Wed, 11 Aug 2010 04:46:06 -0400 (EDT)
- References: <i368lp$r56$1@smc.vnet.net>
On Aug 2, 6:03 am, Murray Eisenberg <mur... at math.umass.edu> 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: http://sites.google.com/site/qstate/Home 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 -RG > 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= b]), > 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= s.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