2020-06-28 14:22:57 +00:00
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
2020-07-20 18:57:53 +00:00
|
|
|
// file.js
|
2020-06-28 14:22:57 +00:00
|
|
|
//
|
|
|
|
// Common routines. Defines LIB object which contains the API, as well as
|
2020-06-28 14:38:30 +00:00
|
|
|
// a global console.log function.
|
2020-06-28 14:22:57 +00:00
|
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
2020-07-20 18:57:53 +00:00
|
|
|
|
2020-11-26 04:46:44 +00:00
|
|
|
var LIB = require('lib/std');
|
2020-06-28 14:22:57 +00:00
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
2020-11-26 04:46:44 +00:00
|
|
|
// Private APIs / Utility functions
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
exports.VERSIONINFO = "File Lib (file.js) version 0.2";
|
|
|
|
exports.global = global;
|
|
|
|
exports.require = global.require;
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// exports.fileExists
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
exports.fileExists = function(FN) {
|
|
|
|
var FSO = CreateObject("Scripting.FileSystemObject");
|
|
|
|
var exists = FSO.FileExists(FN);
|
|
|
|
FSO = null;
|
|
|
|
return exists;
|
|
|
|
};
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// exports.folderExists
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
exports.folderExists = function(FN) {
|
|
|
|
var FSO = CreateObject("Scripting.FileSystemObject");
|
|
|
|
var exists = FSO.FolderExists(FN);
|
|
|
|
FSO = null;
|
|
|
|
return exists;
|
|
|
|
};
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// exports.fileGet
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
exports.fileGet = function(FN) {
|
|
|
|
var FSO = CreateObject("Scripting.FileSystemObject");
|
|
|
|
var file = FSO.GetFile(FN);
|
|
|
|
FSO = null;
|
|
|
|
return file;
|
|
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// exports.readFile
|
2020-06-28 14:22:57 +00:00
|
|
|
// Read the conents of the pass filename and return as a string
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2020-11-26 04:46:44 +00:00
|
|
|
exports.readFile = function(FN, charset) {
|
2020-06-28 15:12:12 +00:00
|
|
|
if(typeof(charset) === "undefined") {
|
|
|
|
var FSO = CreateObject("Scripting.FileSystemObject");
|
|
|
|
var T = null;
|
|
|
|
try {
|
|
|
|
var TS = FSO.OpenTextFile(FN, 1);
|
|
|
|
if (TS.AtEndOfStream) return "";
|
|
|
|
T = TS.ReadAll();
|
|
|
|
TS.Close();
|
|
|
|
TS = null;
|
|
|
|
} catch (e) {
|
|
|
|
console.log("ERROR! " + e.number + ", " + e.description + ", FN=" + FN);
|
|
|
|
}
|
|
|
|
FSO = null;
|
|
|
|
return T;
|
|
|
|
} else {
|
2020-11-26 04:46:44 +00:00
|
|
|
var fsT = CreateObject("ADODB.Stream");
|
|
|
|
fsT.CharSet = charset;
|
|
|
|
fsT.Open();
|
|
|
|
fsT.LoadFromFile(FN);
|
|
|
|
T = fsT.ReadText();
|
|
|
|
fsT = null;
|
|
|
|
return T;
|
2020-06-28 15:12:12 +00:00
|
|
|
}
|
2020-06-28 14:22:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
2020-11-26 04:46:44 +00:00
|
|
|
// exports.writeFile
|
2020-06-28 14:22:57 +00:00
|
|
|
// Write the passed content to named disk file
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2020-11-26 04:46:44 +00:00
|
|
|
exports.writeFile = function(FN, content, charset) {
|
2020-08-04 10:38:21 +00:00
|
|
|
var Stream_No_UTF8_BOM = function(objStream) {
|
|
|
|
var _objStream = CreateObject("ADODB.Stream");
|
|
|
|
_objStream.Type = 1;
|
|
|
|
_objStream.Mode = 3;
|
|
|
|
_objStream.Open();
|
|
|
|
objStream.Position = 3;
|
|
|
|
objStream.CopyTo(_objStream);
|
|
|
|
objStream.Flush();
|
|
|
|
objStream.Close();
|
|
|
|
return _objStream;
|
|
|
|
};
|
2020-06-28 15:12:12 +00:00
|
|
|
var ok;
|
2020-08-04 10:38:21 +00:00
|
|
|
|
2020-06-28 15:12:12 +00:00
|
|
|
if (charset) {
|
|
|
|
console.log("WRITE TO DISK USING ADODB.Stream CHARSET " + charset);
|
|
|
|
try {
|
|
|
|
var fsT = CreateObject("ADODB.Stream");
|
|
|
|
fsT.Type = 2; // save as text/string data.
|
|
|
|
fsT.Charset = charset; // Specify charset For the source text data.
|
|
|
|
fsT.Open();
|
|
|
|
fsT.WriteText(content);
|
2020-08-04 10:38:21 +00:00
|
|
|
if (charset == "utf-8") {
|
|
|
|
Stream_No_UTF8_BOM(fsT).SaveToFile(FN, 2); // save as binary to disk
|
|
|
|
} else {
|
|
|
|
fsT.SaveToFile(FN, 2); // save as binary to disk
|
|
|
|
}
|
2020-06-28 15:12:12 +00:00
|
|
|
ok = true;
|
|
|
|
} catch (e) {
|
|
|
|
console.log("ADODB.Stream: ERROR! " + e.number + ", " + e.description + ", FN=" + FN);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
console.log("WRITE TO DISK USING OpenTextFile CHARSET ascii");
|
|
|
|
var FSO = CreateObject("Scripting.FileSystemObject");
|
|
|
|
try {
|
|
|
|
var TS = FSO.OpenTextFile(FN, 2, true, 0); // ascii
|
|
|
|
TS.Write(content);
|
|
|
|
TS.Close();
|
|
|
|
TS = null;
|
|
|
|
ok = true;
|
|
|
|
} catch (e) {
|
|
|
|
console.log("OpenTextFile: ERROR! " + e.number + ", " + e.description + ", FN=" + FN);
|
|
|
|
}
|
|
|
|
FSO = null;
|
2020-06-28 14:22:57 +00:00
|
|
|
}
|
2020-06-28 15:12:12 +00:00
|
|
|
return ok;
|
2020-06-28 14:22:57 +00:00
|
|
|
};
|
|
|
|
|
2020-12-07 08:33:12 +00:00
|
|
|
exports.writeBinaryFile = function(FN, DATA) {
|
|
|
|
var adTypeText = 1;
|
|
|
|
var adSaveCreateOverWrite = 2;
|
|
|
|
var BinaryStream = CreateObject("ADODB.Stream");
|
|
|
|
BinaryStream.Type = adTypeText;
|
|
|
|
BinaryStream.Open();
|
|
|
|
BinaryStream.Write(DATA);
|
|
|
|
BinaryStream.SaveToFile(FN, adSaveCreateOverWrite);
|
|
|
|
BinaryStream.Close();
|
|
|
|
};
|
|
|
|
|
2020-11-26 04:46:44 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// exports.moveFile
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
2020-11-25 02:46:20 +00:00
|
|
|
|
|
|
|
exports.moveFile = function(FROM, TO) {
|
2020-11-26 04:46:44 +00:00
|
|
|
var FSO = CreateObject("Scripting.FileSystemObject");
|
|
|
|
var res = FSO.MoveFile(FROM, TO);
|
|
|
|
FSO = null;
|
|
|
|
return res;
|
2020-11-25 02:46:20 +00:00
|
|
|
};
|
|
|
|
|
2020-11-26 04:46:44 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// exports.createFolder
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
2020-06-28 19:04:10 +00:00
|
|
|
|
2020-11-26 04:46:44 +00:00
|
|
|
exports.createFolder = function(FN) {
|
|
|
|
var FSO = CreateObject("Scripting.FileSystemObject");
|
|
|
|
var res = FSO.CreateFolder(FN);
|
|
|
|
FSO = null;
|
|
|
|
return res;
|
2020-06-28 19:04:10 +00:00
|
|
|
};
|
|
|
|
|
2020-11-26 04:46:44 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// exports.deleteFile
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
2020-11-25 02:46:20 +00:00
|
|
|
|
2020-11-26 04:46:44 +00:00
|
|
|
exports.deleteFile = function(FN) {
|
|
|
|
var FSO = CreateObject("Scripting.FileSystemObject");
|
|
|
|
var res = FSO.DeleteFile(FN);
|
|
|
|
FSO = null;
|
|
|
|
return res;
|
2020-11-25 02:46:20 +00:00
|
|
|
};
|
|
|
|
|
2020-12-07 08:33:12 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
exports.includeFile = function(FN) {
|
|
|
|
var fso = CreateObject("Scripting.FileSystemObject");
|
|
|
|
var fileStream = fso.openTextFile(FN);
|
|
|
|
var fileData = fileStream.readAll();
|
|
|
|
fileStream.Close();
|
|
|
|
eval(fileData);
|
|
|
|
};
|