# 运行时 / 文件与目录

## `createDir(alias, dir_name)`

声明：function

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

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

返回：bool

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

声明：function

文件访问函数相关函数。

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

返回：string

## `fileAge(alias, file_name)`

声明：function

取得文件的时间。

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

返回：int

## `fileAttr(alias, file_name)`

声明：function

取得文件的属性。该值是各种属性的和，可以参考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)`

声明：function

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

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

返回：bool

## `fileDateToDateTime(filename)`

声明：function

日期时间处理函数。

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

返回：datetime

## `fileDelete(alias, file_name)`

声明：function

删除文件。

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

返回：bool

## `fileExists(alias, file_name)`

声明：function

判定文件是否存在。

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

返回：bool

## `fileInfo(alias, name)`

声明：function

获取指定文件基本信息。

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

返回：array

## `fileList(alias, file_name)`

声明：function

列出目录。

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

返回：array

## `fileMode(alias, file_name)`

声明：function

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

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

返回：int

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

声明：function

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

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

返回：bool

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

声明：function

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

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

返回：bool

## `fileSize(alias, file_name)`

声明：function

取得文件大小。

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

返回：int

## `fileTime(alias, file_name)`

声明：function

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

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

返回：datetime

## `getDeviceFree(alias, name)`

声明：function

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

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

返回：array

## `getdeviceinfo(alias, name)`

声明：function

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

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

返回：array

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

声明：function

文件访问函数相关函数。

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

返回：bool

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

声明：function

文件访问函数相关函数。

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

返回：bool

## `removeDir(alias, dir_name)`

声明：function

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

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

返回：bool

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

声明：function

设置文件的时间。

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

返回：int

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

声明：function

设置文件的属性。

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

返回：any

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

声明：function

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

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

返回：int

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

声明：function

设置文件的时间。

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

返回：int

## `TS_ModuleInfo(n)`

声明：function

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

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

返回：array

## 用户和函数相关函数

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

声明：function

向虚拟目录写日志。其中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

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

## `ImportantItems_Call(stock_arr, end_t, sort_by, return_number)`

声明：function

上市公司最新主要财务指标排行。

| 参数            | 类型     | 说明                           |
| --------------- | -------- | ------------------------------ |
| `stock_arr`     | array    | 数组。股票列表。               |
| `end_t`         | datetime | 整数。报告期。                 |
| `sort_by`       | any      | 整数。排序字段，取值如下:      |
| `return_number` | any      | 整数。返回个数，-1时返回全部。 |

返回：array

## `fl_ImportFile(import_type, id)`

声明：function

ImportFile函数教学函数。导入保存类型为importType的指定ID证券数据文件。若文件不存在则返回'file not exist'，若文件导入失败则返回'Import file fail'。其中虚拟目录名为'testdir'，用户应申请服务器权限并且建立好该虚拟目录。

| 参数          | 类型   | 说明       |
| ------------- | ------ | ---------- |
| `import_type` | any    | 用户自定义 |
| `id`          | string | 证券       |

返回：any

## `fl_WriteFile(b_kname, t)`

声明：function

WriteFile函数教学函数。将指定板块BKname的每一只股票在指定日T的行情数据保存到虚拟目录'testdir'下的'HqData.dat'文件，写出成功则返回'convert finished'。用户应申请好服务器权限，并建立好虚拟目录'testdir'。

| 参数      | 类型     | 说明     |
| --------- | -------- | -------- |
| `b_kname` | string   | 系统板块 |
| `t`       | datetime | 日期     |

返回：any

## `fl_ExportFile(export_type, id, t)`

声明：function

Export函数教学函数。将指定股票ID的历史报告期十大股东序列数据以exportType文件形式导出到虚拟目录'testdir'下,若导入成功则返回'export success'，否则返回'export fail!'。用户应当申请好服务器权限，并建立好虚拟目录'testdir'。

| 参数          | 类型   | 说明       |
| ------------- | ------ | ---------- |
| `export_type` | any    | 用户自定义 |
| `id`          | string | 证券       |
| `t`           | any    | 日期       |

返回：string

## `ft_Expression2_3(l1)`

声明：function

表达式函数教学函数。返回指定股票在指定日180个序列的L1乖离率，与系统参数(股票，周期，时间，复权相关)

| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `l1` | any  | 整数 |

返回：any

## `ft_Expression1()`

声明：function

表达式教学函数。返回当前股票收盘价的5个周期的平均值，与当前系统参数(股票，时间，周期)相关。

返回：float

## `readExcelSheets(alias, file_name, sheets_name, use_ole)`

声明：function

从Excel文件中读出Sheets列表。

| 参数          | 类型       | 说明                                                                             |
| ------------- | ---------- | -------------------------------------------------------------------------------- |
| `alias`       | string     | 字符串类型。参考目录别名。                                                       |
| `file_name`   | string     | 字符串类型。文件名称。                                                           |
| `sheets_name` | array      | 返回值。存贮读出的SHEETS名称，存贮为一个一维字符串数组。                         |
| `use_ole`     | bool=false | 布尔型。是否使用Excel来读取，默认直接采用读文件的方式。设置为真则要求安装Excel。 |

返回：bool

### 示例

```tsl
// 读取本地文件的sheet列表名
rdo2 readExcelSheets('', 'd:\\test\\test.xls', r, 0);
return r;
// 结果：array("Sheet1","Sheet2","Sheet3")
```

## `exportFile2(_type, alias, file_name, data, include_header, include_index, sheet, range)`

声明：function

将数据导出到指定Sheet、指定数据位置Range的excel文件，仅支持Type类型为ftxls()的，为了兼容其他类型，如果输入的类型是非ftxls()的，则执行exportfile导出数据且无法指定Sheet和Range。注：导出时对应的excel文件需要关闭。

| 参数             | 类型   | 说明                                                              |
| ---------------- | ------ | ----------------------------------------------------------------- |
| `_type`          |        | 整数类型。参考导入导出类型函数。                                  |
| `alias`          | string | 字符串类型。参考目录别名。                                        |
| `file_name`      | string | 字符串类型。文件名称。                                            |
| `data`           |        | 数据，需要导出的数据。                                            |
| `include_header` | bool   | 布尔类型。为真时导出的文件包含字段头部信息。缺省时候为真。        |
| `include_index`  | bool   | 布尔类型。为真时导出的文件包含数组下标信息。缺省时候为假。        |
| `sheet`          | string | 字符串类型，指定Sheet。                                           |
| `range`          | string | 字符串类型，指定单元格，如:”A1”表示要把数据导出到A1开始的单元格。 |

返回：integer|string

### 示例

```tsl
// 导出10 * 5全1矩阵，到C: \\test.xlsx 文件的Sheet3，C2单元格。
data := ones(10, 5);
ret := rdo2 exportFile2(ftXls(), "", "C:\\test.xlsx", data, 1, 0, "Sheet3", "C2");
return ret;
// 结果：1 (表示数据导出成功，可以在c盘看到test.xlsx文件)
```

## `importFile2(_type, alias, file_name, data, include_header, include_index, force_single, sheet, range)`

声明：function

导入excel中指定Sheet的内容，可选择指定数据范围Range。仅支持Type类型为ftxls()的，为了兼容其他类型，如果输入的类型是非ftxls()的，则执行importfile导入数据且无法指定数据位置Range。

| 参数             | 类型    | 说明                                                                                             |
| ---------------- | ------- | ------------------------------------------------------------------------------------------------ |
| `_type`          | integer | 整数类型。参考导入导出类型函数。                                                                 |
| `alias`          | string  | 字符串类型。参考目录别名。                                                                       |
| `file_name`      | string  | 字符串类型。文件名称。                                                                           |
| `data`           | bool    | 变参返回，存贮导入的数据。当导入成功的时候，数据将存放在Data。                                   |
| `include_header` | bool    | 布尔类型。为真时认为导入的文件包含字段头部信息。缺省时候为真。                                   |
| `include_index`  | bool    | 布尔类型。为真时认为导入的文件包含数组下标信息。缺省时候为假。                                   |
| `force_single`   | bool    | 布尔类型。为真时认为导入的文件是一个一维数组。缺省时候为假。                                     |
| `sheet`          | string  | 字符串类型，指定Sheet。                                                                          |
| `range`          | string  | 字符串类型，指定单元格范围，如果为空导入Sheet的所有数据，非空则必须为excel的Range，如:“A1:E13“。 |

返回：bool

### 示例

```tsl
// 导入"C:\\test.xlsx"文件中的Sheet3的"C2:E5"数据，包含字段名称。
ret := rdo2 importFile2(ftXls(), "", "C:\\test.xlsx", data, 1, 0, 0, "Sheet3", "C2:E5");
if ret then
return data;
else
return "导入失败";
// 输出：
// 无输出。
// Excel的数据：
```

## `ftCsVne()`

声明：function

逗号分割文件类型，输出结果禁用1E20等类型

返回：integer

## `fs_InfoId(infoid)`

声明：function

获得基本面数据教学函数。返回截止到2002年6月30日Infoid相关基本面数据。

| 参数     | 类型 | 说明   |
| -------- | ---- | ------ |
| `infoid` | any  | 基本面 |

返回：any

## `ft_Expression2_2(rdate)`

声明：function

表达式函数教学函数。返回指定股票在报告期rdate的资产负债表,与当前系统参数(股票)相关。

| 参数    | 类型     | 说明   |
| ------- | -------- | ------ |
| `rdate` | datetime | 报告期 |

返回：any

## `loadTableEx(table_name)`

声明：function

加载用户数据TableName，如若TableName非空，则返回TableName数据，否则返回空数组。

| 参数         | 类型   | 说明                 |
| ------------ | ------ | -------------------- |
| `table_name` | string | 字符串，数据文件名称 |

返回：array

### 示例

```tsl
return loadTableEx('repitle');
// 返回: repitle为保存好的用户数据
```
