Monday, November 08, 2010 at 12:02 AM.
system.verbs.builtins.file.writeWholeFile
on writeWholeFile (f, s, type = nil, creator = nil, creationdate = nil) {
<<Changes
<<11/27/01; 7:58:10 AM by DW
<<Add support for callbacks that get control after the file has been written. The callbacks are passed the file path. Their returned value is ignored.
<<1/1/01; 12:41:27 PM by DW
<<If the file exists prior to writing and the creation date is not specified by the caller, maintain the file's creation date.
<<Instead of calling sys.os, use system.environment.isMac.
<<10/31/97 at 1:41:20 PM by DW
<<Moved from toys.writeWholeFile.
<<Friday, July 18, 1997 at 10:22:07 AM by PBS
<<Conditionalized for multiple platforms, with optional parameters.
if creationdate == nil {
if file.exists (f) {
try {creationdate = file.created (f)}}};
file.new (f);
file.open (f);
if system.environment.isMac {
if type != nil {
file.settype (f, type)};
if creator != nil {
file.setcreator (f, creator)}};
file.write (f, s);
file.close (f);
if creationdate != nil {
file.setcreated (f, creationdate)};
bundle { //call the callbacks, if present
local (adrscript);
if not defined (user.callbacks.fileWriteWholeFile) {
new (tableType, @user.callbacks.fileWriteWholeFile)};
for adrscript in @user.callbacks.fileWriteWholeFile {
try {
while typeOf (adrscript^) == addressType {
adrscript = adrscript^};
adrscript^ (f)}}};
return (true)}
<<bundle //test code
<<writewholefile ("c:\\tmp.html", clock.now ())
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.