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