Monday, November 08, 2010 at 12:02 AM.
system.verbs.builtins.export.sendFolder
on sendFolder (adr, folder) { //new in 4.0.1 if file.exists (folder) { if file.isFolder (folder) { file.deleteFolder (folder)} else { file.delete (folder)}}; on doTable (adrtable, folder) { on cleanFileName (adr, isFolder=false) { <<Monday, March 02, 1998 at 12:20:00 AM by PBS <<Add suffixes on Windows -- Macs too if pref is set. local (name = nameOf (adr^)); local (maxlen, pathchar = file.getPathChar ()); case sys.os () { "WinNT"; "Win95" { maxlen = 250}; "MacOS" { maxlen = 26}}; if isFolder { maxlen = maxlen + 5}; if sizeof (name) > maxlen { name = string.mid (name, 1, maxlen)}; if not isFolder { case sys.os () { "WinNT"; "Win95" { name = name + "." + frontier.getFileSuffix (typeOf (adr^))}; "MacOS" { if not defined (user.prefs.appendFileSuffixes) { user.prefs.appendFileSuffixes = false}; if user.prefs.appendFileSuffixes { name = name + "." + string.lower (frontier.getFileType (typeOf (adr^)))}}}}; name = string.replaceAll (name, pathchar, "-"); return (name)}; local (ct = sizeof (adrtable^), i); file.sureFolder (folder); for i = 1 to ct { local (adr = @adrtable^ [i]); local (name = nameOf (adr^)); <<if sizeof (name) > 31 <<name = string.mid (name, 1, 31) name = cleanFileName (adr, (typeOf (adr^) == tableType)); name = string.replaceAll (name, file.getPathChar (), "-"); name = string.replaceAll (name, "/", "-"); //Frontier/Win chokes on /s too local (f = folder + name); if typeOf (adr^) == tableType { doTable (adr, f + file.getPathChar ())} else { msg (adr); export.sendObject (adr, f); if sys.os () == "MacOS" { //file.setModified is failing silently on Windows local (moddate = timeModified (adr)); if typeOf (moddate) == dateType { file.setModified (f, moddate); file.setCreated (f, timeCreated (adr))}}}}}; return (doTable (adr, folder))}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.