# 运行时 / 文件与目录

## `createDir(alias, dir_name)`

创建目录。如果本地不存在该目录，可创建目录；如果该目录已存在，则创建失败，返回0。

| 参数       | 类型   | 说明                       |
| ---------- | ------ | -------------------------- |
| `alias`    | string | 字符串类型。参考目录别名。 |
| `dir_name` | string | 字符串类型。创建的目录名。 |

返回：bool

## `exportFile(filename, arg2, arg3, data)`

文件访问函数相关函数。

| 参数       | 类型   | 说明 |
| ---------- | ------ | ---- |
| `filename` | int    |      |
| `arg2`     | string |      |
| `arg3`     | string |      |
| `data`     | array  |      |

返回：string

## `fileAge(alias, file_name)`

取得文件的时间。

| 参数        | 类型   | 说明                       |
| ----------- | ------ | -------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。     |

返回：int

## `fileAttr(alias, file_name)`

取得文件的属性。该值是各种属性的和，可以参考WINDOWS API。 值 说明 32(0x20) 备份文件 2048(0x800) 压缩文件 64(0x40) 系统保留属性 16(0x10) 目录 16384 (0x4000) 加密文件或目录 2 (0x2) 隐藏的文件或目录 32768 (0x8000) 文件完整性 128 (0x80) 常规文件 8192 (0x2000) 非索引文件 131072 (0x20000) 不扫描的数据文件 4096 (0x1000) 离线文件，主要是共享文件可在脱机状态下使用 1 (0x1) 只读文件 1024 (0x400) 符号链接文件 512 (0x200) 稀疏文件，文件中出现大量的0数据 4 (0x4) 操作系统文件 256 (0x100) 临时文件 65536 (0x10000) 虚拟属性，系统保留属性

| 参数        | 类型   | 说明                       |
| ----------- | ------ | -------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。     |

返回：int

## `fileCopy(src_alias, src_name, dest_alias, dest_name, fail_if_exists)`

文件拷贝。注：目标文件名的路径必须存在，否则会复制不成功。

| 参数             | 类型   | 说明                                         |
| ---------------- | ------ | -------------------------------------------- |
| `src_alias`      | string | 源文件目录别名，字符串类型。参考目录别名。   |
| `src_name`       | bool   | 源文件名，字符串类型。源文件名。             |
| `dest_alias`     | string | 目标文件目录别名，字符串类型。参考目录别名。 |
| `dest_name`      | string | 目标文件名，字符串类型。源文件名。           |
| `fail_if_exists` | string | object                                       |

返回：bool

## `fileDateToDateTime(filename)`

日期时间处理函数。

| 参数       | 类型 | 说明 |
| ---------- | ---- | ---- |
| `filename` | int  |      |

返回：datetime

## `fileDelete(alias, file_name)`

删除文件。

| 参数        | 类型   | 说明                       |
| ----------- | ------ | -------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。     |

返回：bool

## `fileExists(alias, file_name)`

判定文件是否存在。

| 参数        | 类型   | 说明                       |
| ----------- | ------ | -------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。     |

返回：bool

## `fileInfo(alias, name)`

获取指定文件基本信息。

| 参数    | 类型   | 说明                               |
| ------- | ------ | ---------------------------------- |
| `alias` | string | 字符串，目录别名，可传入空字符串。 |
| `name`  | string | 字符串，文件路径。                 |

返回：array

## `fileList(alias, file_name)`

列出目录。

| 参数        | 类型   | 说明                                     |
| ----------- | ------ | ---------------------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。               |
| `file_name` | string | 字符串类型。查找的文件名称，支持通配符。 |

返回：array

## `fileMode(alias, file_name)`

获取文件模式数值。此函数在Windows上与FileAttr表现一致，具体可以参考FileAttr中的相关说明。在Linux上采用Linux的原始定义。仅NG客户端中支持。

| 参数        | 类型   | 说明 |
| ----------- | ------ | ---- |
| `alias`     | string |      |
| `file_name` | string |      |

返回：int

## `fileMove(src_alias, srcname, dest_alias, destname, flag, return_value)`

文件移动，指定的目标路径必须已存在（路径不存在时，移动失败），移动成功后，原文件不再存在，只在目标路径中保存。 相比filerename而言支持跨卷移动。

| 参数           | 类型                                             | 说明                              |
| -------------- | ------------------------------------------------ | --------------------------------- |
| `src_alias`    | string                                           | 源文件目录别名，参考FAQ：目录别名 |
| `srcname`      | int                                              | 源文件名                          |
| `dest_alias`   | string                                           | 目标目录别名                      |
| `destname`     | string                                           | 目标文件名                        |
| `flag`         | string                                           | 可选参数，移动模式。              |
| `return_value` | 不支持跨卷移动，目标文件已存在时移动失败，默认值 | object                            |

返回：bool

## `fileRename(alias, file_name, new_name)`

文件更名，也可用于文件的移动（大多数情况下不支持跨卷移动）。

| 参数        | 类型   | 说明                           |
| ----------- | ------ | ------------------------------ |
| `alias`     | string | 字符串类型。参考目录别名。     |
| `file_name` | string | 字符串类型。文件名称。         |
| `new_name`  | string | 字符串类型。更名后的文件名称。 |

返回：bool

## `fileSize(alias, file_name)`

取得文件大小。

| 参数        | 类型   | 说明                       |
| ----------- | ------ | -------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。     |

返回：int

## `fileTime(alias, file_name)`

取得文件的最后更新时间。

| 参数        | 类型   | 说明                       |
| ----------- | ------ | -------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。     |

返回：datetime

## `getDeviceFree(alias, name)`

获取指定路径所在设备的剩余存储空间信息。

| 参数    | 类型   | 说明                               |
| ------- | ------ | ---------------------------------- |
| `alias` | string | 字符串，目录别名，可传入空字符串。 |
| `name`  | string | 字符串，文件路径                   |

返回：array

## `getdeviceinfo(alias, name)`

获取指定路径所在设备的存储空间等信息。

| 参数    | 类型   | 说明                               |
| ------- | ------ | ---------------------------------- |
| `alias` | string | 字符串，目录别名，可传入空字符串。 |
| `name`  | string | 字符串，文件路径                   |

返回：array

## `importFile(filename, arg2, arg3, data2)`

文件访问函数相关函数。

| 参数       | 类型   | 说明 |
| ---------- | ------ | ---- |
| `filename` | int    |      |
| `arg2`     | string |      |
| `arg3`     | array  |      |
| `data2`    | bool   |      |

返回：bool

## `readFile(filename, arg2, arg3, arg4, size, data)`

文件访问函数相关函数。

| 参数       | 类型   | 说明 |
| ---------- | ------ | ---- |
| `filename` | int    |      |
| `arg2`     | string |      |
| `arg3`     | int    |      |
| `arg4`     | int    |      |
| `size`     | string |      |
| `data`     | int    |      |

返回：bool

## `removeDir(alias, dir_name)`

删除目录。只能删除空目录；如果要删除的目录下有文件，删除失败。

| 参数       | 类型   | 说明                       |
| ---------- | ------ | -------------------------- |
| `alias`    | string | 字符串类型。参考目录别名。 |
| `dir_name` | string | 字符串类型。创建的目录名。 |

返回：bool

## `setFileAge(alias, file_name, age)`

设置文件的时间。

| 参数        | 类型   | 说明                                                 |
| ----------- | ------ | ---------------------------------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。                           |
| `file_name` | int    | 字符串类型。文件名称。                               |
| `age`       | string | 整数类型，该参数可以用DateTimeToFileDate转换转换获取 |

返回：int

## `setFileAttr(alias, file_name, attr)`

设置文件的属性。

| 参数        | 类型   | 说明                                                                          |
| ----------- | ------ | ----------------------------------------------------------------------------- |
| `alias`     | string | 字符串类型。参考目录别名。                                                    |
| `file_name` | string | 字符串类型。文件名称。                                                        |
| `attr`      | any    | 整数类型，文件的属性，为各种文件属性的和，可以参考WINDOWS API，详见FileAttr。 |

返回：any

## `setFileMode(alias, file_name, mode)`

设置文件的模式。仅NG客户端中支持。

| 参数        | 类型   | 说明 |
| ----------- | ------ | ---- |
| `alias`     | string |      |
| `file_name` | int    |      |
| `mode`      | any    |      |

返回：int

## `setFileTime(alias, file_name, time)`

设置文件的时间。

| 参数        | 类型     | 说明                       |
| ----------- | -------- | -------------------------- |
| `alias`     | string   | 字符串类型。参考目录别名。 |
| `file_name` | datetime | 字符串类型。文件名称。     |
| `time`      | string   | 日期类型，文件时间         |

返回：int

## `TS_ModuleInfo(n)`

返回进程以及TSLInterp.dll的时间以及大小信息。如果有系统权限信息，用TS_ModuleInfo(1)返回所有模块的文件名和时间。

| 参数 | 类型 | 说明                                                                                                                                      |
| ---- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `n`  | any  | 整型，获取系统信息类型；无参或为0时，返回进程以及TSLInterp.dll的时间以及大小信息；为1时，若有系统权限信信息，则返回所有模块的文件名和时间 |

返回：array

## 用户和函数相关函数

## `writeToLog(dir, sub_dir, value)`

向虚拟目录写日志。其中Dir为虚拟目录名，SubDir为文件名，成功写入日志后，会生成命名为’SubDir’+写入日期+’.log’的TXT文件，文件内容为写入时间->Value。用户使用其应当申请好服务器权限。 20250512升级：优化多个线程同时写入时存在丢失情况： 1、增加重试次数，重试20次间隔0.5秒。 2、增加返回内容。 注意：在极端情况下（超多多线程下同时写入）可能还会存在写入失败情况，此时可通过返回结果继续处理

| 参数      | 类型   | 说明                                                                                                                             |
| --------- | ------ | -------------------------------------------------------------------------------------------------------------------------------- |
| `dir`     | string | 字符串，虚拟目录别名，一般在安装目录\Tinysoft\Analyse.NET\Plugin\filemgr.ini中进行配置。如果没有配置别名，该参数赋值为空字符""。 |
| `sub_dir` | string | 字符串，文件名                                                                                                                   |
| `value`   | string | 字符串，需要写入日志的内容                                                                                                       |

返回：any

## 网络访问以及相关函数
