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

On this page