From e491cdb48129752324c4e3764f99bd9203c56dec Mon Sep 17 00:00:00 2001
From: lgq <1015864684@qq.com>
Date: 星期二, 31 三月 2026 09:48:44 +0800
Subject: [PATCH] 1.新增VF205门禁机代码

---
 vf205_access/dxmodules/dxStd.js |  399 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 399 insertions(+), 0 deletions(-)

diff --git a/vf205_access/dxmodules/dxStd.js b/vf205_access/dxmodules/dxStd.js
new file mode 100644
index 0000000..5b3504f
--- /dev/null
+++ b/vf205_access/dxmodules/dxStd.js
@@ -0,0 +1,399 @@
+//build 20240222
+//quickjs 鏍囧噯搴擄紝鎻愪緵鍜屾搷浣滅郴缁熺浉鍏冲嚱鏁帮紝鎻愪緵鏍囧噯IO鐩稿叧鍑芥暟
+import * as os from "os"
+import * as std from "std"
+import common from "./dxCommon.js"
+
+const dxstd = {}
+/**
+ * 閫�鍑哄簲鐢�
+ * @param {number} n 閫�鍑虹爜
+ */
+dxstd.exit = function (n) {
+    return std.exit(n);
+}
+/**
+ * 鍚姩璁℃椂鍣紝寤舵椂寮傛鎵ц鍑芥暟
+ * @param {function} func 闇�瑕佹墽琛岀殑鍑芥暟
+ * @param {number} delay 寤惰繜鐨勬椂闂达紙姣锛�
+ * @returns timer寮曠敤
+ */
+dxstd.setTimeout = function (func, delay) {
+    return os.setTimeout(func, delay)
+}
+/**
+ * 娓呴櫎鎸囧畾鐨勮鏃跺櫒
+ * @param {*} handle timer寮曠敤
+ */
+dxstd.clearTimeout = function (handle) {
+    os.clearTimeout(handle)
+}
+// 璁板綍瀹氭椂鍣╥d锛岀敤浜巆lear锛屽彧鑳藉湪鍚屼竴绾跨▼涓璫lear
+let allTimerIdsMap = {}
+
+/**
+ * interval瀹氭椂鍣�
+ * @param {function} callback 鍥炶皟鍑芥暟锛屽繀濉�
+ * @param {number} interval 闂撮殧鏃堕棿锛屽繀濉�
+ * @param {boolean} once 鍒涘缓鍚庣珛鍗虫墽琛屼竴娆★紝闈炲繀濉�
+ * @param {number} timerId 瀹氭椂鍣╥d锛岄潪蹇呭~
+ */
+dxstd.setInterval = function (callback, interval, once, timerId) {
+    if (timerId === null || timerId === undefined) {
+        timerId = new Date().getTime() + "_" + this.genRandomStr(5)
+        allTimerIdsMap[timerId] = "ready"
+    }
+    if (once === true) {
+        // 鍒涘缓鍚庣珛鍗虫墽琛屼竴娆�
+        os.setTimeout(() => {
+            if (allTimerIdsMap[timerId]) {
+                callback()
+            }
+        }, 0);
+    }
+    if (!allTimerIdsMap[timerId]) {
+        return
+    }
+    allTimerIdsMap[timerId] = os.setTimeout(() => {
+        if (allTimerIdsMap[timerId]) {
+            callback()
+            this.setInterval(callback, interval, false, timerId)
+        }
+    }, interval);
+    return timerId
+}
+
+/**
+ * 娓呴櫎interval瀹氭椂鍣�
+ * @param {number} timerId 瀹氭椂鍣╥d锛屽繀濉�
+ */
+dxstd.clearInterval = function (timerId) {
+    const timer = allTimerIdsMap[timerId];
+    if (timer) {
+        os.clearTimeout(timer);
+        delete allTimerIdsMap[timerId];
+    }
+}
+/**
+ * 鍒犻櫎褰撳墠绾跨▼鎵�鏈塱nterval瀹氭椂鍣紝娉ㄦ剰锛氬彧鏄垹闄ゅ綋鍓嶇嚎绋嬪垱寤虹殑瀹氭椂鍣紝鑻ユ湁澶氫釜绾跨▼锛屾瘡涓嚎绋嬮兘闇�瑕佽皟鐢ㄥ垹闄�
+ */
+dxstd.clearIntervalAll = function () {
+    for (let timerId in allTimerIdsMap) {
+        if (allTimerIdsMap.hasOwnProperty(timerId)) {
+            os.clearTimeout(allTimerIdsMap[timerId]);
+            delete allTimerIdsMap[timerId];
+        }
+    }
+}
+/**
+ * 鐢熸垚鎸囧畾闀垮害鐨勫瓧姣嶅拰鏁板瓧缁勫悎鐨勯殢鏈哄瓧绗︿覆
+ * @param {number} length 瀛楃涓查暱搴︼紝闈炲繀濉紝缂虹渷鏄�6
+ * @returns 
+ */
+dxstd.genRandomStr = function (length = 6) {
+    const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
+    let result = ''
+    for (let i = 0; i < length; i++) {
+        const randomIndex = Math.floor(Math.random() * charset.length)
+        result += charset.charAt(randomIndex)
+    }
+    return result
+}
+/**
+ * 鎶婁竴娈靛瓧绗︿覆浣滀负 javascript 鑴氭湰鎵ц
+ * @param {string} str js鑴氭湰瀛楃涓�
+ * @param {boolean} async 榛樿涓篺alse锛屽鏋滀负 true锛岃剼鏈腑灏嗘帴鍙� await 骞惰繑鍥炰竴涓� Promise 
+ */
+dxstd.eval = function (str, async) {
+    return std.evalScript(str, { async: async });
+}
+/**
+ * 鍔犺浇涓�涓枃浠跺唴瀹逛綔涓� javascript 鑴氭湰鎵ц
+ * @param {string} filename js鑴氭湰鍐呭鐨勬枃浠跺悕(缁濆璺緞)
+ */
+dxstd.loadScript = function (filename) {
+    return std.loadScript(filename);
+}
+/**
+ * 鍔犺浇鏂囦欢锛岃鍙栨枃浠堕噷鐨勫唴瀹癸紙浣跨敤utf锛�
+ * @param {string} filename 鏂囦欢鍚�
+ */
+dxstd.loadFile = function (filename) {
+    return std.loadFile(filename)
+}
+/**
+ * 淇濆瓨瀛楃涓插埌鏂囦欢
+ * @param {string} filename 
+ * @param {string} content 
+ */
+dxstd.saveFile = function (filename, content) {
+    if (!content || (typeof content) != 'string') {
+        throw new Error("The 'content' value should be string and not empty")
+    }
+    if (!filename) {
+        throw new Error("The 'filename' should not be empty")
+    }
+    if (!this.exist(filename)) {
+        this.ensurePathExists(filename)
+        let fd = os.open(filename, os.O_RDWR | os.O_CREAT | os.O_TRUNC);
+        if (fd < 0) {
+            throw new Error("Create file failed:" + filename)
+        }
+        os.close(fd)
+    }
+    let fd = std.open(filename, "w");
+    fd.puts(content)
+    fd.flush();
+    fd.close();
+    common.systemBrief('sync')
+    return true
+}
+/**
+ * 纭繚鏂囦欢瀵瑰簲鐨勭洰褰曢兘瀛樺湪锛屼笉瀛樺湪灏变細鍒涘缓
+ * @param {string} filename 
+ */
+dxstd.ensurePathExists = function (filename) {
+    const pathSegments = filename.split('/');
+    let currentPath = '';
+    for (let i = 0; i < pathSegments.length - 1; i++) {
+        currentPath += pathSegments[i] + '/';
+        if (!this.exist(currentPath)) {
+            this.mkdir(currentPath);
+        }
+    }
+}
+/**
+ * 鍒ゆ柇鏂囦欢鏄惁瀛樺湪
+ * @param {string} filename  鏂囦欢鍚�
+ * @returns true/false
+ */
+dxstd.exist = function (filename) {
+    return (os.stat(filename)[1] === 0)
+}
+/**
+ * 杩斿洖涓�涓寘鍚幆澧冨彉閲忕殑閿�煎鐨勫璞°��
+ */
+dxstd.getenviron = function () {
+    return std.getenviron();
+}
+/**
+ * 杩斿洖鐜鍙橀噺鍚嶇О鐨勫�硷紝濡傛灉鏈畾涔夊垯杩斿洖undefined
+ * @param {string} name 鍙橀噺鍚�
+ */
+dxstd.getenv = function (name) {
+    return std.getenv(name);
+}
+/**
+ * 灏嗙幆澧冨彉閲忓悕鐨勫�艰缃负瀛楃涓插��
+ * @param {string} name 鍙橀噺鍚�
+ * @param {string} value 鍙橀噺鍊�
+ */
+dxstd.setenv = function (name, value) {
+    return std.setenv(name, value);
+}
+/**
+ * 鍒犻櫎鐜鍙橀噺
+ * @param {string} name 鍙橀噺鍚�
+ */
+dxstd.unsetenv = function (name) {
+    return std.unsetenv(name);
+}
+/**
+ * 浣跨敤JSON.parse鐨勮秴闆嗘潵瑙f瀽瀛楃涓层�傚彲浠ヨВ鏋愰潪鏍囧噯鐨� JSON 瀛楃涓层�傛帴鍙椾互涓嬫墿灞曪細
+ * - 鍗曡鍜屽琛屾敞閲�
+ * - 鏈姞寮曞彿鐨勫睘鎬э紙浠匒SCII瀛楃鐨凧avaScript鏍囪瘑绗︼級
+ * - 鏁扮粍鍜屽璞℃渶鍚庡彲浠ュ姞閫楀彿
+ * - 鍗曞紩鍙峰瓧绗︿覆
+ * - \f 鍜� \v 琚帴鍙椾负绌烘牸瀛楃
+ * - 鏁板瓧涓殑鍓嶉潰鍙互鏈夊姞鍙�
+ * - 鍏繘鍒讹紙0o鍓嶇紑锛夊拰鍗佸叚杩涘埗锛�0x鍓嶇紑锛夋暟瀛�
+ * @param {string} str json瀛楃涓�
+ */
+dxstd.parseExtJSON = function (str) {
+    return std.parseExtJSON(str);
+}
+/**
+ * 浼戠湢delay_ms姣
+ */
+dxstd.sleep = function (delay_ms) {
+    return os.sleep(delay_ms);
+}
+/**
+ * 杩斿洖琛ㄧず骞冲彴鐨勫瓧绗︿覆锛�"linux"銆�"darwin"銆�"win32" 鎴� "js"銆�
+ */
+dxstd.platform = function () {
+    return os.platform;
+}
+/**
+ * 鍒涘缓涓�涓柊绾跨▼锛坵orker锛夌殑鏋勯�犲嚱鏁帮紝鍏禔PI鎺ヨ繎浜嶹ebWorkers銆�
+ * 瀵逛簬鍔ㄦ�佸鍏ョ殑妯″潡锛屽畠鐩稿浜庡綋鍓嶈剼鏈垨妯″潡璺緞銆傜嚎绋嬮�氬父涓嶅叡浜换浣曟暟鎹紝鍙互閫氳繃dxMap,dxQueue,dxWpc鏉ュ叡浜拰浼犻�掓暟鎹�備笉鏀寔宓屽鐨� worker銆�
+ * @param {string} module_filename 鎸囧畾鍦ㄦ柊鍒涘缓鐨勭嚎绋嬩腑鎵ц鐨勬ā鍧楁枃浠跺悕
+ */
+dxstd.Worker = function (module_filename) {
+    return new os.Worker(module_filename)
+}
+
+dxstd.O_RDONLY = os.O_RDONLY
+dxstd.O_WRONLY = os.O_WRONLY
+dxstd.O_RDWR = os.O_RDWR
+dxstd.O_APPEND = os.O_APPEND
+dxstd.O_CREAT = os.O_CREAT
+dxstd.O_EXCL = os.O_EXCL
+dxstd.O_TRUNC = os.O_TRUNC
+/**
+ * 鎵撳紑涓�涓枃浠躲�傝繑鍥炰竴涓彞鏌勶紝濡傛灉鍑虹幇閿欒鍒欒繑鍥� < 0銆�
+ * @param {string} filename 鏂囦欢缁濆璺緞
+ * @param {number} flags O_RDONLY,O_WRONLY,O_RDWR,O_APPEND,O_CREAT,O_EXCL,O_TRUNC
+ * 1. O_RDONLY 锛氫互鍙鏂瑰紡鎵撳紑鏂囦欢
+ * 2. O_WRONLY 锛氫互鍙啓鏂瑰紡鎵撳紑鏂囦欢
+ * 3. O_RDWR 锛氫互鍙鍙啓鏂瑰紡鎵撳紑鏂囦欢
+ * 浠ヤ笂涓変釜鏄枃浠惰闂潈闄愭爣蹇楋紝浼犲叆鐨刦lags 鍙傛暟涓繀椤昏鍖呭惈鍏朵腑涓�绉嶆爣蹇楋紝鑰屼笖鍙兘鍖呭惈涓�绉嶏紝鎵撳紑鐨勬枃浠跺彧鑳芥寜鐓ц繖绉嶆潈闄愭潵鎿嶄綔锛�
+   璀浣跨敤浜� O_RDONLY 鏍囧織锛屽氨鍙兘瀵规枃浠惰繘琛岃鍙栨搷浣滐紝涓嶈兘鍐欐搷浣溿��
+
+ * 4. O_APPEND 锛氳皟鐢� open 鍑芥暟鎵撳紑鏂囦欢锛屽綋姣忔浣跨敤 write()鍑芥暟瀵规枃浠惰繘琛屽啓鎿嶄綔鏃讹紝閮戒細鑷姩鎶婃枃浠跺綋鍓嶄綅缃亸绉婚噺绉诲姩鍒版枃浠舵湯灏撅紝
+   浠庢枃浠舵湯灏惧紑濮嬪啓鍏ユ暟鎹紝涔熷氨鏄剰鍛崇潃姣忔鍐欏叆鏁版嵁閮芥槸浠庢枃浠舵湯灏惧紑濮嬨��
+   O_APPEND鏍囧織骞朵笉浼氬奖鍝嶈鏂囦欢锛屽綋璇诲彇鏂囦欢鏃讹紝 O_APPEND 鏍囧織骞朵笉浼氬奖鍝嶈浣嶇疆鍋忕Щ閲忥紝 
+   鍗充娇浣跨敤浜� O_APPEND鏍囧織锛岃鏂囦欢浣嶇疆鍋忕Щ閲忛粯璁ゆ儏鍐典笅渚濈劧鏄枃浠跺ご锛�
+   浣跨敤 lseek 鍑芥暟鏉ユ敼鍙� write()鏃剁殑鍐欎綅缃亸绉婚噺涔熶笉浼氭垚鍔燂紝
+   褰撴墽琛� write()鍑芥暟鏃讹紝妫�娴嬪埌 open 鍑芥暟鎼哄甫浜� O_APPEND 鏍囧織锛屾墍浠ュ湪 write 鍑芥暟鍐呴儴浼氳嚜鍔ㄥ皢鍐欎綅缃亸绉婚噺绉诲姩鍒版枃浠舵湯灏�
+
+ * 5. O_CREAT锛氬鏋� filename 鍙傛暟鎸囧悜鐨勬枃浠朵笉瀛樺湪鍒欏垱寤烘鏂囦欢
+ * 6. O_EXCL :姝ゆ爣蹇椾竴鑸粨鍚� O_CREAT 鏍囧織涓�璧蜂娇鐢紝鐢ㄤ簬涓撻棬鍒涘缓鏂囦欢銆�
+   鍦� flags 鍙傛暟鍚屾椂浣跨敤鍒颁簡 O_CREAT 鍜孫_EXCL 鏍囧織鐨勬儏鍐典笅锛屽鏋� filename 鍙傛暟鎸囧悜鐨勬枃浠跺凡缁忓瓨鍦紝
+   鍒� open 鍑芥暟杩斿洖閿欒銆傚彲浠ョ敤浜庢祴璇曚竴涓枃浠舵槸鍚﹀瓨鍦紝濡傛灉涓嶅瓨鍦ㄥ垯鍒涘缓姝ゆ枃浠讹紝濡傛灉瀛樺湪鍒欒繑鍥為敊璇紝杩欎娇寰楁祴璇曞拰鍒涘缓涓よ�呮垚涓轰竴涓師瀛愭搷浣溿��
+ * 7. O_TRUNC 锛氳皟鐢� open 鍑芥暟鎵撳紑鏂囦欢鐨勬椂鍊欎細灏嗘枃浠跺師鏈殑鍐呭鍏ㄩ儴涓㈠純锛屾枃浠跺ぇ灏忓彉涓� 0锛� 
+ */
+dxstd.open = function (filename, flags) {
+    return os.open(filename, flags);
+}
+/**
+ * 鍒ゆ柇缁欏畾璺緞鏄惁鏄竴涓枃浠跺す銆�
+ * @param {string} filename - 瑕佹鏌ョ殑璺緞銆�
+ * @returns {boolean} 濡傛灉鏄枃浠跺す鍒欒繑鍥� true锛屽惁鍒欒繑鍥� false,濡傛灉涓嶅瓨鍦紝鎶涘嚭寮傚父銆�
+ */
+dxstd.isDir = function (filename) {
+    let stat = os.stat(filename)
+    if (stat[1] != 0) {
+        throw new Error("No such file:" + filename)
+    }
+    return ((stat[0].mode & this.S_IFMT) === this.S_IFDIR);
+}
+/**
+ * 鍏抽棴鏂囦欢
+ * @param {*} fd 鏂囦欢鍙ユ焺 
+ */
+dxstd.close = function (fd) {
+    return os.close(fd)
+}
+dxstd.SEEK_SET = std.SEEK_SET
+dxstd.SEEK_CUR = std.SEEK_CUR
+dxstd.SEEK_END = std.SEEK_END
+/**
+ * 鍦ㄦ枃浠朵腑杩涜瀹氫綅銆備娇鐢⊿EEK_*鏉ヨ〃绀簑hence銆俹ffset鍙互鏄暟瀛楁垨bigint銆傚鏋渙ffset鏄痓igint锛屽垯杩斿洖涓�涓猙igint銆�
+ * @param {*} fd 鏂囦欢鍙ユ焺
+ * @param {number} offset 涓哄亸绉婚噺锛屾暣鏁拌〃绀烘鍚戝亸绉伙紝璐熸暟琛ㄧず璐熷悜鍋忕Щ
+ * @param {*} whence 璁惧畾浠庢枃浠剁殑鍝噷寮�濮嬪亸绉�: SEEK_SET锛� 鏂囦欢寮�澶�;SEEK_CUR锛� 褰撳墠浣嶇疆;SEEK_END锛� 鏂囦欢缁撳熬
+ */
+dxstd.seek = function (fd, offset, whence) {
+    return os.seek(fd, offset, whence)
+}
+/**
+ * 浠庢枃浠跺彞鏌刦d璇诲彇length瀛楄妭鍒颁綅浜庡瓧鑺備綅缃畂ffset鐨凙rrayBuffer缂撳啿鍖恒�傝繑鍥炶鍙栫殑瀛楄妭鏁帮紝濡傛灉鍑虹幇閿欒鍒欒繑鍥� < 0銆�
+ * @param {*} fd 鏂囦欢鍙ユ焺
+ * @param {*} buffer ArrayBuffer瀵硅薄
+ * @param {number} offset 鍋忕Щ閲�
+ * @param {number} length 璇诲彇鐨勫瓧鑺傞暱搴�
+ */
+dxstd.read = function (fd, buffer, offset, length) {
+    return os.read(fd, buffer, offset, length);
+}
+/**
+ * 浠嶢rrayBuffer缂撳啿鍖虹殑瀛楄妭浣嶇疆offset鍚戞枃浠跺彞鏌刦d鍐欏叆length瀛楄妭銆傝繑鍥炲凡鍐欏叆鐨勫瓧鑺傛暟锛屽鏋滃嚭鐜伴敊璇垯杩斿洖 < 0銆�
+ * @param {*} fd 鏂囦欢鍙ユ焺
+ * @param {*} buffer ArrayBuffer瀵硅薄
+ * @param {*} offset 鍋忕Щ閲�
+ * @param {*} length 鍐欑殑瀛楄妭闀垮害
+ */
+dxstd.write = function (fd, buffer, offset, length) {
+    return os.write(fd, buffer, offset, length);
+}
+/**
+ * 鍒犻櫎鏂囦欢锛屾垚鍔熻繑鍥�0鍚﹀垯-errno
+ * @param {string} filename 鏂囦欢缁濆璺緞
+ */
+dxstd.remove = function (filename) {
+    return os.remove(filename)
+}
+/**
+ * 淇敼鏂囦欢鍚嶇О锛屾垚鍔熻繑鍥�0鍚﹀垯-errno
+ * @param {string} oldname 鏃ф枃浠剁粷瀵硅矾寰�
+ * @param {string} newname 鏂版枃浠剁粷瀵硅矾寰�
+ */
+dxstd.rename = function (oldname, newname) {
+    return os.rename(oldname, newname)
+}
+/**
+ * 杩斿洖 [str, err]锛屽叾涓� str 鏄綋鍓嶅伐浣滅洰褰曪紝err 鏄敊璇唬鐮�
+ */
+dxstd.getcwd = function () {
+    return os.getcwd()
+}
+/**
+ * 鏀瑰彉褰撳墠宸ヤ綔鐩綍
+ * @param {string} path 鐩綍,鏀寔缁濆鍜岀浉瀵硅矾寰� 
+ */
+dxstd.chdir = function (path) {
+    return os.chdir(path)
+}
+/**
+ * 鍒涘缓鐩綍,鎴愬姛杩斿洖0鍚﹀垯-errno
+ * @param {string} path 鐩綍缁濆璺緞 
+ */
+dxstd.mkdir = function (path) {
+    return os.mkdir(path)
+}
+dxstd.S_IFMT = os.S_IFMT
+dxstd.S_IFIFO = os.S_IFIFO
+dxstd.S_IFCHR = os.S_IFCHR
+dxstd.S_IFDIR = os.S_IFDIR
+dxstd.S_IFBLK = os.S_IFBLK
+dxstd.S_IFREG = os.S_IFREG
+dxstd.S_IFSOCK = os.S_IFSOCK
+dxstd.S_IFLNK = os.S_IFLNK
+dxstd.S_ISGID = os.S_ISGID
+dxstd.S_ISUID = os.S_ISUID
+/**
+ * 杩斿洖 [obj, err]锛屽叾涓� obj 鏄竴涓寘鍚矾寰刾ath鐨勬枃浠剁姸鎬佷俊鎭殑瀵硅薄銆�
+ * err 鏄敊璇唬鐮併�俹bj 涓畾涔変簡浠ヤ笅瀛楁锛歞ev銆乮no銆乵ode銆乶link銆乽id銆乬id銆乺dev銆乻ize銆乥locks銆乤time銆乵time銆乧time銆�
+ * 鏃堕棿浠ヨ嚜1970骞翠互鏉ョ殑姣涓哄崟浣嶆寚瀹氥��
+ * 鍏朵腑mode鐨勫�煎搴斾互涓嬫灇涓�,渚嬪锛屾鏌ヤ竴涓枃浠舵槸鍚︽槸鐩綍鍙互浣跨敤 (mode & S_IFMT) == S_IFDIR 鐨勬柟寮�:
+   S_IFMT锛氫綅鎺╃爜锛岀敤浜庢彁鍙栨枃浠剁被鍨嬮儴鍒嗙殑浣嶃�傝繖鏄竴涓敤浜庡睆钄芥枃浠剁被鍨嬩綅鐨勫父閲忋��
+   S_IFIFO锛氳〃绀篎IFO锛堝懡鍚嶇閬擄級銆�
+   S_IFCHR锛氳〃绀哄瓧绗﹁澶囥��
+   S_IFDIR锛氳〃绀虹洰褰曘��
+   S_IFBLK锛氳〃绀哄潡璁惧銆�
+   S_IFREG锛氳〃绀哄父瑙勬枃浠躲��
+   S_IFSOCK锛氳〃绀哄鎺ュ瓧銆�
+   S_IFLNK锛氳〃绀虹鍙烽摼鎺ャ��
+   S_ISGID锛氳缃粍ID浣嶃��
+   S_ISUID锛氳缃敤鎴稩D浣嶃��
+ * @param {string} path 鏂囦欢鎴栫洰褰曠粷瀵硅矾寰� 
+ */
+dxstd.stat = function (path) {
+    return os.stat(path)
+}
+/**
+ * lstat() 涓� stat() 鐩稿悓锛屽彧鏄畠杩斿洖鍏充簬閾炬帴鏈韩鐨勪俊鎭��
+ * @param {*} path 鏂囦欢鎴栫洰褰曠粷瀵硅矾寰� 
+ */
+dxstd.lstat = function (path) {
+    return os.lstat(path)
+}
+/**
+ * 杩斿洖 [array, err]锛屽叾涓� array 鏄寘鍚洰褰曡矾寰勪笅鐨勬枃浠跺悕鐨勫瓧绗︿覆鏁扮粍銆俥rr 鏄敊璇唬鐮併��
+ * @param {string} path 鐩綍缁濆璺緞 
+ */
+dxstd.readdir = function (path) {
+    return os.readdir(path)
+}
+export default dxstd
\ No newline at end of file

--
Gitblit v1.9.3