file — 本地文件操作
本地文件系统的查询、读写、创建、复制、重命名、删除与上传操作。
self.file 提供本地文件系统的操作能力,包括目录浏览、读写文件、创建、复制、移动、重命名、删除以及向设备上传文件。
self.file 的读取类操作需要 file.read 权限,写入类操作需要 file.write 权限。请在插件清单中声明相应权限。
带 callback 的方法为异步请求,操作完成后以关键字参数回调;不带 callback 的方法为即发即弃(fire-and-forget),立即返回。
目录与节点查询
| 方法 | 说明 |
|---|---|
get_file_list(path, callback=None) | 获取目录下的文件与文件夹列表 |
get_root_dir(callback=None) | 获取本地项目根目录路径 |
get_focus_file_node(callback=None) | 获取本地文件面板当前选中的文件节点 |
get_focus_folder_node(callback=None) | 获取本地文件面板当前选中的文件夹节点 |
get_file_list(path, callback=None)
获取指定目录下的文件和文件夹列表。
self.file.get_file_list("/path/to/dir", lambda **cb: print(cb))参数:
path(str) — 目录路径
get_root_dir(callback=None)
获取本地项目根目录路径。
self.file.get_root_dir(lambda **cb: print(cb.get("path", "")))回调数据:{"path": "项目根目录绝对路径"}
get_focus_file_node(callback=None)
获取本地文件面板中当前选中的文件节点。
self.file.get_focus_file_node(lambda **cb: print(cb))get_focus_folder_node(callback=None)
获取本地文件面板中当前选中的文件夹节点。
self.file.get_focus_folder_node(lambda **cb: print(cb))即发即弃操作
以下方法不接收回调,调用后立即返回:
| 方法 | 说明 |
|---|---|
save_current_file() | 保存当前编辑器中的文件 |
save_current_file_as() | 将当前文件另存为 |
open_file(path) | 在编辑器中打开文件 |
upload_selected_local_file_item() | 上传选中的本地文件到设备 |
rename(path, new_name) | 重命名文件或文件夹 |
delete(path) | 删除文件或文件夹 |
open_folder(path) | 在系统文件管理器中打开文件夹 |
save_current_file()
保存当前编辑器中的文件。
self.file.save_current_file()save_current_file_as()
将当前文件另存为(会弹出保存对话框)。
self.file.save_current_file_as()open_file(path)
在编辑器中打开指定文件。
self.file.open_file("/path/to/file.py")参数:
path(str) — 文件路径
upload_selected_local_file_item()
上传本地文件面板中当前选中的文件到设备。
self.file.upload_selected_local_file_item()rename(path, new_name)
重命名文件或文件夹。
self.file.rename("/path/to/old.py", "new.py")参数:
path(str) — 原路径new_name(str) — 新名称
delete(path)
删除文件或文件夹。
self.file.delete("/path/to/file.py")参数:
path(str) — 要删除的路径
open_folder(path)
在系统文件管理器中打开文件夹。
self.file.open_folder("/path/to/folder")参数:
path(str) — 文件夹路径
创建与写操作
| 方法 | 说明 |
|---|---|
create_file(path, callback=None) | 创建文件 |
create_folder(path, callback=None) | 创建文件夹 |
write_file(path, content, callback=None) | 写入文件内容 |
create_file(path, callback=None)
创建新文件。
self.file.create_file("/path/to/new_file.py")参数:
path(str) — 文件路径
create_folder(path, callback=None)
创建新文件夹。
self.file.create_folder("/path/to/new_folder")参数:
path(str) — 文件夹路径
write_file(path, content, callback=None)
写入文件内容。
self.file.write_file("/path/to/file.py", "print('hello')")参数:
path(str) — 文件路径content(str) — 文件内容
文件操作
| 方法 | 说明 |
|---|---|
read_file(path, callback=None) | 读取文件内容 |
copy_file(src, dst, callback=None) | 复制文件 |
move_file(src, dst, callback=None) | 移动文件 |
exists(path, callback=None) | 检查路径是否存在 |
is_file(path, callback=None) | 检查路径是否为文件 |
is_directory(path, callback=None) | 检查路径是否为目录 |
read_file(path, callback=None)
读取文件内容。
self.file.read_file(
"/path/to/file.py", lambda **cb: print(cb.get("content", ""))
)参数:
path(str) — 文件路径
回调数据:{"content": "文件内容"}
copy_file(src, dst, callback=None)
复制文件到目标路径。
self.file.copy_file("/path/to/source.py", "/path/to/dest.py")参数:
src(str) — 源路径dst(str) — 目标路径
move_file(src, dst, callback=None)
将文件移动到目标路径。
self.file.move_file("/path/to/source.py", "/path/to/dest.py")参数:
src(str) — 源路径dst(str) — 目标路径
exists(path, callback=None)
检查路径是否存在。
self.file.exists("/path/to/file.py", lambda **cb: print(cb))参数:
path(str) — 路径
is_file(path, callback=None)
检查路径是否为文件。
self.file.is_file("/path/to/file.py", lambda **cb: print(cb))参数:
path(str) — 路径
is_directory(path, callback=None)
检查路径是否为目录。
self.file.is_directory("/path/to/dir", lambda **cb: print(cb))参数:
path(str) — 路径
上传与命名
| 方法 | 说明 |
|---|---|
upload_file(local_path, board_path, callback=None) | 上传单个文件到设备 |
get_unique_name(name, is_folder=False, callback=None) | 获取不重复的文件名 |
upload_file(local_path, board_path, callback=None)
将本地文件上传到设备指定路径。
self.file.upload_file("/local/file.py", "/board/file.py")参数:
local_path(str) — 本地文件路径board_path(str) — 设备目标路径
get_unique_name(name, is_folder=False, callback=None)
获取一个不与现有节点冲突的名称(自动追加序号)。
self.file.get_unique_name("file.py", lambda **cb: print(cb.get("name", "")))参数:
name(str) — 原始名称is_folder(bool) — 是否为文件夹,默认False