文件浏览器
文件 是主分页器的第 3 页:你当前打开的项目的目录树。在这里你可以创建、重命名、剪切、复制、创建副本和删除文件与文件夹,按名称或文本搜索,给目录树排序,查看 Git 认为哪些文件已更改,并在编辑器中打开任意文件。本页还介绍全屏编辑器内的第二个资源管理器、Quick Open、书签,以及文件如何进出应用。本页的所有功能都不需要 Pro。

「文件」是什么,以及如何打开
「文件」是主分页器 5 个页面(Home、Projects、Files、IDE 和 AI Chat)中的第 3 页。它一次只显示一个项目,即你最近打开的那个。页眉显示 文件浏览器,旁边是项目名称和类似 TaskCLI · 3 个文件夹 · 4 个文件 的计数。在平板上它是同一个页面,只是更宽。
- 1打开项目:在 项目 页面点按它,或在 主页 点按一个项目(例如在 继续 中)。项目随即打开,你会进入「文件」页面。
- 2左右滑动 切换页面。导航栏中的圆点(屏幕横置时是侧边栏)显示你所在的位置;它们不是按钮。
- 3从 IDE 页面:点按其欢迎界面上的 开始编程,该界面在没有任何标签页打开时显示。
- 4使用实体键盘:按
Ctrl+Shift+P(在编辑器之外按Ctrl+P),然后选择 文件资源管理器。 - 5通过链接:
pocketcode://app/files会打开该页面。
没有打开任何项目时,页面背后没有实际内容:页眉显示 Project,目录树区域显示 空项目 和一个 新建文件 按钮。请先从 项目 打开一个项目。冷启动后,在应用恢复你之前打开的项目时,页面会短暂保持空白。
界面地图
一个页面、少量面板和对话框,以及位于编辑器中的四项功能。
| 界面 | 如何到达 | 你可以在那里做什么 |
|---|---|---|
| 文件(目录树) | 分页器的第 3 页,或在 项目 或 主页 中点按一个项目。 | 展开和收起文件夹,点按文件打开它,查看 Git 标记,打开任意一行的菜单。 |
| 页眉:+ 和 ⋮ | 页面顶部。 | + 在项目根目录创建文件或文件夹。⋮ 中有 搜索、定位当前文件、粘贴到文件夹…、折叠、排序、刷新、显示隐藏文件 和部署入口。 |
| 按名称搜索栏 | ⋮ → 搜索。 | 在你已展开的文件夹中按名称查找文件或文件夹。 |
| 新建 面板 | +,或文件夹菜单中的 在此文件夹中创建。 | 选择目标文件夹,创建文件或文件夹,或点按一个快速模板。 |
| 行菜单 | 一行上的 ⋮ 按钮。 | 打开、在此文件夹中创建、重命名、剪切、复制、粘贴到此处、复制路径、创建副本、删除 和 在文件夹中查找。 |
| 重命名 和 删除 对话框 | 从行菜单进入。 | 原地重命名;在删除文件或文件夹之前确认(设置中的 删除前确认,默认开启)。 |
| 文件夹选择器 | ⋮ → 粘贴到文件夹… 或 移动到文件夹…,仅在剪贴板中有内容时出现。 | 选择要粘贴或移入的文件夹。 |
| 选择栏 | 长按一行。 | 选中多行,然后 剪切、复制 或 删除所选(删除前确认 开启时会先询问)。 |
| 在文件夹中查找 面板 | 文件夹的行菜单 → 在文件夹中查找。 | 在该文件夹的文件内搜索文本。 |
| 空状态 | 没有文件的项目,或没有匹配项的搜索。 | 空项目 和 新建文件;无结果。 |
| IDE 页面 | 在「文件」中点按一个文件。 | 只读预览和你已打开的标签页;在编辑器中打开 进入全屏编辑器。它有自己的文档页面。 |
| 编辑器的资源管理器 | 在编辑器中:标签栏的 ▾ 箭头、资源管理器 命令或 Ctrl+Shift+E。 | 在抽屉或停靠面板中显示已打开的标签页和项目目录树。 |
| Quick Open | 在编辑器中:Ctrl+P、打开文件… 或符号栏的命令键。 | 输入路径的一部分,跳转到项目中的任意文件。 |
| 书签 | 在编辑器中:切换书签。 | 标记已打开文件的某些行,并在它们之间跳转。 |
| 从设备打开文件… | 在编辑器中:转到 部分的一个命令。 | 通过 Android 选择器打开项目之外的文本文件。 |
目录树
目录树按文件夹逐个读取项目,只在你展开某个文件夹时才读取。无论排序方式如何,每个文件夹中都是文件夹排在文件之前。若一串文件夹各自只包含一个文件夹,例如 src/main/java,则显示为一行。你当前打开的文件会高亮显示,其名称使用强调色。
行、图标和计数
每一行都有:文件夹的箭头、图标、名称、有 Git 状态时的 Git 字母,以及一个 ⋮ 按钮。
你可以
- 点按文件夹 展开或收起它。点按文件 在 IDE 页面中打开它。
- 打开行菜单:使用该行上的 ⋮ 按钮。
- 看懂图标:文件如果有对应的语言或工具图标就使用它,否则显示普通文档图标;文件夹显示由其名称决定的双层图标(
src、test、docs、components…… 超过 900 个名称有对应图标)。 - 看懂计数:
N 个文件夹 · M 个文件统计页面到目前为止读取到的所有内容,包括目录树隐藏的条目,并且只统计你展开过的文件夹。它可能与你看到的行数不同。 - 全部折叠:⋮ → 折叠;项目根目录保持展开。
- 找到已打开的文件:⋮ → 定位当前文件,它会展开所在的文件夹并滚动到该文件。仅在有文件打开时才显示此项。
- 显示隐藏文件,例如
.gitignore或.env:⋮ → 显示隐藏文件。它们默认是隐藏的。 - 保持你的位置:只要你停留在同一个项目,你展开的文件夹就保持展开。切换项目会重置它们。
你不能
- 看到
node_modules、.git、.gradle、build、.idea、__pycache__、.DS_Store、.cache或.pocketcode。这九个名称由固定列表隐藏,即使开启 显示隐藏文件 也一样,你自己建的名为build的文件夹同样会被隐藏。有意为之
Git 标记
如果项目是 Git 仓库,每个已更改的文件都会显示一个字母,其名称采用对应状态的颜色。文件夹采用其内部内容的状态,优先级为:冲突,然后是已修改,然后是已删除,然后是已添加或未跟踪。当文件已暂存、之后又被再次编辑时,标记显示它在工作区中的状态。不是 Git 仓库的项目不显示标记。
| 标记 | 含义 |
|---|---|
| M | 已修改 |
| A | 已添加 |
| D | 已删除 |
| U | 未跟踪 |
| ! | 冲突 |
你可以
- 查看改动了什么,无需打开 Source Control。
- 沿目录树向上追踪改动:文件夹带有其内容中最强的状态。
- 放心它们是最新的:页面会在打开项目时、在本页每次操作之后、在编辑器中每次保存之后、在 AI 智能体更改文件时,以及点按 刷新 时重新读取 Git。
你不能
- 在本页暂存、提交或对比:它只显示状态。请从 项目 中的项目卡片,或编辑器中的 Source Control 提交。有意为之
- 看到 R(重命名)或 I(忽略)标记。应用定义了这两个字母,但从不分配它们,所以它们永远不会出现。尚未提供
排序
⋮ → 排序 会打开四种顺序。当前顺序以粗体显示并带有对勾。这个选择不会被保存,因此页面下次构建时会回到 名称 A→Z。
| 顺序 | 作用 |
|---|---|
| 名称 A→Z | 按字母顺序,忽略大小写。默认。 |
| 名称 Z→A | 按字母倒序。 |
| 文件类型 | 先按扩展名分组,再按名称排序。 |
| 大小 | 出现在菜单中,但实际按名称排序,与 名称 A→Z 完全一样。 |
你不能
- 按文件大小排序:大小 在菜单里,但实际按名称排序,因为目录树不知道文件的大小。尚未提供
按名称搜索
⋮ → 搜索 会在页眉下方打开一个搜索栏(搜索文件和文件夹…)。输入时,目录树会被一个扁平的匹配列表取代,每个匹配项的右侧显示其父文件夹。⋮ → 关闭搜索,或输入框中的 ✕,可以恢复目录树。
你可以
- 按顺序输入字母,不必相邻:
mact能找到MainActivity。最佳匹配排在最前:先是完全相同的名称,然后是以你输入的文本开头的名称,然后是单词开头的匹配。 - 输错字母也没关系:如果没有任何字面匹配,搜索会再试一次,最多容忍两处错误(错误、互换或多余的字母)。容错匹配的排名永远不会高于字面匹配。
- 最多获得 200 条结果。 搜索忽略大小写,比较的是名称,而不是路径。
你不能
- 搜索你从未展开过的文件夹:搜索只覆盖页面已经读取的内容。有意为之
- 搜索隐藏或被排除的条目:它遵循与目录树相同的规则,包括 显示隐藏文件 和那九个固定名称。有意为之
- 匹配重音符号:
arbol找不到árbol。有意为之
在文件内搜索文本
文件夹 的行菜单中有 在文件夹中查找。它会打开一个标题为 在 /src 中搜索 的面板(显示该文件夹自己的名称)。在 在文件中搜索文本… 中至少输入 2 个字符。每条结果显示文件名、第 N 行 以及截断到 120 个字符的该行内容。点按一条结果会打开该文件。
你可以
- 按字面搜索,忽略大小写。它不是正则表达式。
- 深入任意文件夹:与目录树不同,这个搜索没有排除列表,因此它也会读取
node_modules、.git和build。
你不能
- 在本页搜索整个项目:该面板只能从文件夹的菜单打开。要搜索整个项目,请使用编辑器中的 在文件中搜索。尚未提供
- 直接跳到匹配的行:文件会打开,但编辑器不会被带到那一行。尚未提供
- 搜索 2,000,000 字节或更大的文件(它们会被跳过),或看到超过 200 条结果(搜索到此为止)。有意为之
- 排除二进制文件:搜索会读取所有未超过大小限制的文件,不会检查它是否是文本。有意为之
目录树何时更新
在你于本页执行操作之后、在 AI 智能体在此项目中执行操作之后,以及(仅对 Git 标记而言)在编辑器中每次保存之后,目录树会自动更新。
你可以
- 手动刷新:⋮ → 刷新 会重新读取你展开的每个文件夹以及 Git 标记。不会折叠任何内容。
- 依赖 AI 智能体:当它在已打开的项目中创建、更改、重命名或删除文件时,受影响的文件夹会被重新读取。
你不能
- 不刷新就看到由 Terminal 或其他应用创建的文件:没有任何东西监视文件夹,所以请使用 刷新。有意为之
创建、重命名、移动和删除
创建、重命名和删除会拒绝任何最终落在项目之外的路径(例如 ../../x,或指向文件夹之外的链接),并提示 路径无效 或 名称无效。编辑器的资源管理器运行相同的文件代码,所以两者在磁盘上的行为一致。每个操作结束时都会出现一条简短横幅,在所有语言中都带有 EXPLORADOR 标签。对于重命名、删除和粘贴,成功横幅在你确认后立即显示;如果操作随后失败,会再出现一条错误横幅。
创建文件或文件夹
一切都从 新建 面板开始。
- 1点按页眉中的 +(创建文件或文件夹)。要在某个文件夹内创建,请打开它的行菜单并点按 在此文件夹中创建。在空项目中,页面还提供 新建文件。
- 2在面板中,位于: 显示目标位置(/ (根目录) 或类似
/src的文件夹)。点按它可在页面已读取的文件夹中选择另一个。 - 3点按 文件 或 文件夹,输入 名称(输入框提示
file.kt或folder),然后点按 创建。名称为空时,按钮保持不可用。 - 4或者跳过第 3 步,点按其中一个 快速模板:它会立即在 位于: 所示的文件夹中创建该文件。
| 快速模板 | 创建的文件 |
|---|---|
| Kotlin | NewFile.kt |
| Java | NewFile.java |
| XML | layout.xml |
| JSON | data.json |
| HTML | index.html |
| CSS | styles.css |
| JavaScript | script.js |
| Markdown | README.md |
| 文本 | notes.txt |
你可以
- 一次创建多层目录:像
src/util/a.kt这样的名称还会创建缺失的文件夹。 - 创建已存在的文件夹 不会报错:它视为已完成。
- 看到它出现:新条目会显示在目录树中,并且其所在文件夹会展开。
你不能
- 从已有内容开始:快速模板只决定名称。文件创建后是空的,如果名称已被占用,你会看到 文件已存在,且不会有任何改动。尚未提供
行菜单
使用一行上的 ⋮ 按钮打开它。长按则是另一个功能:开始选择(见下文)。
| 条目 | 作用 |
|---|---|
| 打开 | 仅限文件。与点按该文件相同。 |
| 在此文件夹中创建 | 仅限文件夹。以此文件夹为目标位置打开 新建。 |
| 重命名 | 打开带有当前名称的 重命名 对话框。名称为空或未更改时,重命名 按钮保持不可用。如果名称已被占用,你会看到 已存在同名文件;超出项目的名称会提示 名称无效。重命名文件夹时,它已展开的子文件夹保持展开。 |
| 剪切 和 复制 | 把该条目放入页面自己的剪贴板(见下一部分)。 |
| 粘贴到此处 | 仅限文件夹,且仅在剪贴板中有内容时出现。 |
| 复制路径 | 把绝对路径复制到系统剪贴板。它同时会把该条目作为已复制放入页面的剪贴板,所以 粘贴到此处 可能会出现。 |
| 创建副本 | 在原件旁边创建 name_copy1.ext,然后是 _copy2,依此类推。对文件和文件夹都有效。 |
| 删除 | 删除前确认 开启时(默认)会先询问:弹出 删除 对话框,内容为 确定要删除文件 "x" 吗?,按钮为 删除 和 取消。对于文件夹,消息还会补充说明所有内容都将被删除。该设置关闭时会直接删除,并显示 已删除 "x"。删除是递归且不可恢复的。 |
| 在文件夹中查找 | 仅限文件夹。见「在文件内搜索文本」。 |
你可以
- 选择是否询问:删除前确认(Settings → 行为,默认开启)同时作用于此菜单中的 删除 和 删除所选。编辑器的资源管理器有自己的对话框,并且始终会询问。
你不能
- 撤销删除:没有回收站,该条目会从设备中移除。有意为之
剪切、复制、粘贴和移动
页面有自己的剪贴板,可以同时容纳多个条目。被剪切的条目在你粘贴之前以 45% 的不透明度显示。
- 1选择条目:行菜单中的 剪切 或 复制,选择多个条目时使用选择栏中的这两个按钮。
- 2粘贴到文件夹:使用它菜单中的 粘贴到此处,或 ⋮ → 粘贴到文件夹…(复制之后)或 移动到文件夹…(剪切之后)。这会打开页面已读取的文件夹选择器,/ (根目录) 排在最前。
你可以
- 把副本粘贴任意多次:复制之后剪贴板仍保留内容。目标位置中已存在的名称会变成
name (1).ext、name (2).ext…… - 通过剪切来移动:在至少移动了一个条目的粘贴之后,剪贴板会清空。
- 一次粘贴多个条目;如果有些没有成功,横幅会显示 完成 N 个,失败 M 个。
你不能
- 拖放文件来移动它:移动就是剪切加粘贴(或 移动到文件夹…)。代码中有移动函数,但没有任何界面调用它。尚未提供
- 移动到已被占用的名称上:该条目不会被移动,并计为失败。与复制不同,不会自动为你重命名。有意为之
选择多个条目
长按一行(使用鼠标时为右键点击)会开始选择。
- 1长按一行。如果在 Settings 中开启了 振动,你会感觉到震动。该行被选中,每一行都会出现复选框,页眉变成显示 已选择 N 个 的栏。
- 2点按各行以选中或取消选中。全选 会标记当前可见的每一行。
- 3使用 剪切、复制 或 删除所选,或 取消选择。剪切和复制会把条目放入剪贴板并结束选择。
你可以
- 先询问再删除所选:删除前确认 开启时,删除所选 会打开 删除 N 个项目?(所选文件和文件夹将被永久删除,没有回收站,也无法撤销。),按钮为 删除 和 取消。点按 取消 则一切保持原样。该设置关闭时,这些条目会被直接删除。
- 查看结果:确认后,横幅 已删除 N 个项目 会在结果未知之前立即显示;如果有失败,随后会出现 已删除 N 个,失败 M 个。
你不能
- 撤销从选择栏发起的删除:没有回收站;删除前确认 关闭时,连询问也不会有。有意为之
- 选中不在屏幕上的内容:全选 只标记当前可见的行,因此未展开文件夹中的内容不包括在内。有意为之
打开、打开方式、分享和导入
「文件」负责浏览,编辑器负责编辑。下面说明文件如何在项目、编辑器和 Android 的其他部分之间流转。
在编辑器中打开文件
打开分两步,这是有意为之。
- 1在「文件」中点按一个文件(或行菜单中的 打开)。你会进入 IDE 页面:该文件成为一个标签页,并显示只读预览。
- 2在 IDE 页面点按预览或 在编辑器中打开,进入全屏编辑器。
- 3在编辑器自己的资源管理器中,点按会打开一个 预览标签页(名称为斜体),你打开的下一个文件会复用它。双击,或菜单中的 打开,会保留它。
你不能
- 从「文件」直接把文件打开到全屏编辑器:点按始终会先经过 IDE 页面。有意为之
打开方式
两个方向都由编辑器处理;两个资源管理器都没有 打开方式… 条目。
你可以
- 进入 PocketCode:从文件管理器、邮件应用或聊天应用中,用 PocketCode 打开或编辑文本文件。它在编辑器中打开,成为带有 设备上 标记的标签页,除此之外什么也不会发生:不保存、不运行、不更换项目。如果发送方应用没有授予写入权限,标签页显示 设备上 · 只读,你可以用 另存为… 保留你的更改。
- 离开 PocketCode:在编辑器中,过大而无法打开的文件(80 MiB 或更大)或二进制文件会显示一张带有 用其他应用打开 的卡片,它会把文件交给你选择的应用。
你不能
- 在「文件」或编辑器资源管理器的行菜单中使用 打开方式…:只有上面两张卡片提供它。有意为之
分享
两个资源管理器都没有针对文件或文件夹的 分享 条目。取而代之的是,有两种方式能把副本带出应用。
你可以
- 另存为…(编辑器,任意标签页)通过系统的保存选择器把副本保存为设备上的新文件,之后你继续编辑这个副本。
- 项目卡片(Projects)上的 导出 通过同一个选择器把整个项目保存为 ZIP,选择器中也会列出 Drive 和其他提供方。应用使用选择器而不是分享面板,这样备份会落在你选择的位置。
你不能
- 从「文件」分享单个文件、文件夹或选中的多个条目。有意为之
通过 Android 选择器带入文件
编辑器可以打开不属于任何项目的文件。
- 1在编辑器中运行 从设备打开文件…(更多选项 → 转到,或命令面板)。
- 2在系统选择器中选择文件。它会作为带有 设备上 标记的标签页打开。PocketCode 只获得对这一个文件的访问权,因此不会请求存储权限。
- 3编辑它。当持有该文件的应用允许时,保存会写回原文件;否则请使用 另存为…。
你不能
- 从「文件」把设备上的文件复制到项目中:从设备打开文件… 是在原位置编辑原文件。要把内容带入项目,请使用 Projects 中的 导入 或 打开文件夹,它们会复制内容。有意为之
- 打开二进制文件、非 UTF-8 的文本,或超过 20 MB 的文件。你会看到 这似乎是二进制文件;为避免损坏,未打开。、该文件不是 UTF-8 文本;为避免损坏,未打开。 或 文件过大,无法打开(上限 20 MB)。有意为之
Quick Open 和书签
两者都位于编辑器中,而不在「文件」页面,并且作用于当前打开的项目。
Quick Open
Quick Open 是编辑器的转到文件功能:位于代码上方顶部的一个面板,带有搜索框。
- 1打开方式:在实体键盘上按
Ctrl+P,使用 打开文件…(更多选项 → 转到),或使用符号栏最左端的命令键(打开命令和文件),它会以 All 模式打开面板:文件、命令和符号一并显示。 - 2输入路径的一部分。字母必须按顺序出现,因此
cevm能找到CodeEditorViewModel.kt。匹配在文件名中的权重高于匹配在其所在文件夹中,匹配的字母会高亮显示。 - 3点按一条结果即可打开。未输入任何内容时,你会先看到最近的文件(最多 10 个),然后是项目的其余部分,最多 50 条结果。
你可以
- 用前缀切换搜索对象:
>搜索命令,:后接数字跳转到某一行,@搜索已打开文件的符号。 - 到达任意文件:索引覆盖整个项目,没有深度限制,最多 50,000 个文件。它会排除名称以点开头的文件夹、构建和依赖文件夹(
node_modules、build、dist、target、venv……)以及项目的.gitignore所列出的内容。.gitignore这类隐藏 文件 则包含在内。
你不能
- 靠拼写错误找到文件:Quick Open 要求字母按顺序出现,没有容错,这一点与「文件」中的按名称搜索不同。有意为之
- 看到超过 50 条结果,或索引超过 50,000 个文件。有意为之
书签
书签标记已打开文件的一行,方便你之后回到那里。它们是命令面板和 更多选项 的 转到 部分中的命令。
| 命令 | 作用 |
|---|---|
切换书签(Ctrl+Alt+K) | 在当前行添加或移除书签。 |
下一个书签(Ctrl+Alt+L) | 转到下一个书签并循环。仅在文件有书签时显示。 |
上一个书签(Ctrl+Alt+J) | 转到上一个书签。仅在文件有书签时显示。 |
| 清除所有书签 | 移除文件中的所有书签。仅在文件有书签时显示。 |
你不能
- 在会话之间保留书签:它们属于已打开的标签页,不属于应用保存的会话,因此关闭标签页就会清除它们。有意为之
- 在代码中看到书签:行上不会绘制任何标记,所以使用书签的唯一方式就是这些命令。尚未提供
编辑器的资源管理器
全屏编辑器内有第二个 VS Code 风格的资源管理器,让你不离开代码就能处理项目。它与「文件」页面共用文件操作(相同的检查、相同的规则),但它是不同的界面,功能也不同。

| 「文件」页面 | 编辑器的资源管理器 | |
|---|---|---|
| 位置 | 分页器的第 3 页。 | 在编辑器内:宽度小于 840 dp 时是抽屉,从 840 dp 起是停靠面板。 |
| 点按文件 | 在 IDE 页面中打开它。 | 打开一个预览标签页;双击会保留它。 |
| 行菜单 | 该行上的 ⋮ 按钮。 | 长按该行。 |
| 创建 | +、在此文件夹中创建 和快速模板。 | 新建文件 和 新建文件夹;带有 / 的名称还会创建文件夹。 |
| 剪切、复制、粘贴、创建副本、选择多个 | 有。 | 没有。 |
| 排序 | 四种顺序。 | 固定:文件夹在前,然后按名称。 |
| 隐藏文件 | 默认隐藏;九个名称始终隐藏。 | 始终显示;只隐藏 .git 和 .pocketcode。被忽略的条目会变暗。 |
| 按名称搜索 | 字母按顺序,带容错,范围是你展开过的文件夹。 | 筛选:名称包含你输入的文本,范围是整个项目。 |
| 搜索文本 | 在文件夹中查找。 | 编辑器中的 在文件中搜索。 |
| Git | 文件上的字母 M、A、D、U 和 !。 | 字母 M、A、U、D 和 R,有更改的文件夹上有一个圆点,以及带分支信息的页脚。 |
| 已打开的标签页 | — | 已打开 部分。 |
| 部署 | ⋮ 中的 部署此项目。 | — |
打开并调整大小
打开方式:标签栏右端的 ▾ 箭头(至少需要一个已打开的标签页)、资源管理器 命令(Ctrl+Shift+E,也在 更多选项 中),或在达到 20 个标签页上限时使用 查看标签。首次使用时会有提示:点击此处打开文件浏览器。
你可以
- 窄窗口(宽度小于 840 dp,例如竖持的手机或小型平板):一个宽 320 dp、最多占屏幕 85% 的抽屉,盖在变暗的编辑器之上。它没有边缘滑动打开的方式,因为那个边缘是系统的返回手势。它可通过返回、点按变暗的编辑器、向左滑动关闭,并且在小于 600 dp 时,打开文件也会关闭它。
- 宽窗口(840 dp 或更大,例如横置的平板或横持的大屏手机):停靠在左侧的面板,默认显示,在你更改之前宽 280 dp。拖动它的右边缘可在 200 dp 到窗口 45% 之间调整大小;宽度会被记住。双击边缘可恢复默认值。使用 TalkBack 时,加宽 和 收窄 无需拖动即可完成。禅模式(Zen mode)会隐藏它。
你不能
- 调整较窄屏幕上抽屉的大小:它自己的边缘已经表示关闭,且最多只占宽度的 85%。有意为之
它有什么
从上到下:一个 资源管理器 栏(仅抽屉)、已打开 部分、项目部分,以及(在抽屉中)一个页脚。
你可以
- 已打开部分:显示标签页,如 已打开 · 4。点按其中一个切换到它,✕ 关闭它。圆点标记未保存的更改,斜体名称标记预览标签页。
- 项目部分:标题是项目名称,带有 新建文件、新建文件夹 和 全部折叠 按钮,面板停靠时还有筛选按钮。在抽屉中,筛选按钮和 ⋮(刷新、显示当前文件、全部折叠)位于顶部的 资源管理器 栏中。
- 行菜单(长按):打开、新建文件、新建文件夹、重命名、删除、复制路径 和 复制相对路径。
- 新建文件、新建文件夹和重命名 会在你输入时检查名称,并提示 该名称无效。重命名 会选中不含扩展名的名称部分。你创建的文件会立即作为普通标签页打开。
- 删除 会询问 删除 x?,并说明该文件会从设备中删除,其本地历史记录会保留。如果已打开的标签页有未保存的更改,它会警告这些标签页将在不保存的情况下被关闭。
- 筛选 整个项目的名称:它保留名称包含你输入文本的文件,并把它们显示在各自的文件夹中。
- Git:已更改的文件上有字母 M、A、U、D 或 R,包含更改的文件夹上有一个圆点,并且在抽屉中有一个页脚,显示分支、待推送的提交 ↑、待拉取的提交 ↓ 以及更改数量。被
.gitignore忽略的条目或构建和依赖文件夹中的条目会变暗,但仍会列出。
你不能
- 剪切、复制、粘贴、创建副本、选择多个、选择排序顺序或关闭点文件:这些属于「文件」页面。有意为之
- 看到
.git或.pocketcode:它们从不会被列出。有意为之 - 把冲突或被忽略的标记显示为字母:资源管理器只有五个字母,被忽略的条目改为变暗显示。有意为之
存储和权限
「文件」页面处理 PocketCode 保存在应用内部的项目。
你的项目存放在哪里
每个项目都是 PocketCode 私有存储中的一个文件夹。
你可以
- 备份项目:使用其卡片上的 导出(用系统选择器保存的 ZIP),或用 Git 推送它。
- 在这里找到示例项目 WebPortfolio 和 TaskCLI:应用在首次启动时把它们放在同一个位置。
你不能
- 从其他应用或文件管理器查看或编辑你的项目:私有存储对其他应用是关闭的。卸载 PocketCode 时,项目会一并被删除。设备
- 把项目保存在共享文件夹中:Projects 中的 打开文件夹 会把你选择的文件夹复制到应用的存储中,之后的编辑不会回写到原文件夹。设备
权限
「文件」页面不请求任何存储权限。所有涉及应用之外文件的操作都通过 Android 自己的选择器:导入(一个 ZIP)、打开文件夹、导出(保存选择器)和 从设备打开文件… 各自只让 PocketCode 访问那一个条目。清单中唯一的存储权限是针对 Android 9 及更早版本的旧权限,「文件」从不使用它。
Free 与 Pro
本页中的任何内容都不需要订阅方案。
| 内容 | Free | Pro |
|---|---|---|
| 「文件」页面:目录树、创建、重命名、剪切、复制、粘贴、创建副本、删除、搜索、排序和 Git 标记 | 包含 | 包含 |
| 编辑器的资源管理器、Quick Open、书签和 从设备打开文件… | 包含 | 包含 |
| 可浏览的你自己的项目(在 Projects 页面检查) | 1 个;2 个示例项目不计入 | 无上限 |
隐私
本页读取、写入和发送的内容。
- 在你的设备上:「文件」读取和写入 PocketCode 私有存储中的项目文件夹。本页不发出任何网络请求,Git 标记来自设备上的仓库。
- 复制路径 会把该条目的绝对路径(以应用的私有文件夹开头)放入系统剪贴板。
- AI 智能体:当你使用带工具的 AI Chat 时,智能体可以在你打开的项目中创建、更改、重命名和删除文件,「文件」会显示结果。它向提供方发送的内容见 AI Chat 的说明。
- 删除 会把条目从设备中移除,没有回收站。「文件」页面在 删除前确认 开启时会先询问。在编辑器的资源管理器中,对话框会说明已删除文件的本地历史记录会保留在设备上。
- 来自外部的文件(从设备打开文件…,或从其他应用用 PocketCode 打开):应用通过 Android 获得对那一个文件的访问权,不会请求存储权限。
- Quick Open 读取文件名来构建索引,而不是文件内容。编辑器的文本搜索在设备上读取内容。
限制
文件资源管理器做不到什么,以及原因。原因:Pro = 订阅方案,设备 = Android,设计如此 = 应用的决定,尚未实现 = 代码中有但没有任何界面能到达。
- 在「文件」中看到
node_modules、.git、.gradle、build、.idea、__pycache__、.DS_Store、.cache或.pocketcode,即使开启 显示隐藏文件 也不行。有意为之 - 在「文件」中按大小排序:大小 实际按名称排序。尚未提供
- 从快速模板获得内容:它只选择文件名并创建一个空文件。尚未提供
- 拖动文件来移动它:请使用剪切和粘贴或 移动到文件夹…。尚未提供
- 从「文件」搜索整个项目,或从 在文件夹中查找 跳到匹配的行。尚未提供
- 看到 R 和 I 这两种 Git 标记:它们已定义,但从不产生。尚未提供
- 用「文件」的按名称搜索来搜索未展开的文件夹,或匹配重音符号。有意为之
- 撤销删除:没有回收站,该条目会从设备中消失。有意为之
- 不使用 刷新 就看到由 Terminal 或其他应用做出的更改:没有任何东西监视文件夹。有意为之
- 从资源管理器分享文件或用其他应用打开它,或从「文件」把设备上的文件添加到项目中。有意为之
- 用 从设备打开文件… 打开二进制文件、非 UTF-8 文本或超过 20 MB 的文件。有意为之
- 从其他应用或文件管理器使用你的项目:它们存放在私有存储中。设备
- 在会话之间保留书签,或在行上看到它们的标记。有意为之
- 在没有打开项目时使用「文件」:页面显示 空项目,新建文件 仍然可用,但文件会落在一个内部的
default文件夹中,之后 Projects 会把它列为一个项目。尚未提供
故障排查
路径无效
你输入的内容会让该条目落在项目之外(例如 ../../x,或经由指向项目之外的链接的路径)。请输入普通名称,或类似 src/util/a.kt 的相对路径。
文件已存在
目标文件夹中已经有同名文件,且没有任何改动。请换一个名称,或打开现有文件。快速模板也会遇到这种情况,因为它总是使用同一个默认名称。
创建文件出错:…、无法创建文件夹 或 创建文件夹出错:…
Android 拒绝了该操作;冒号后面的文字是它给出的原因。请尝试另一个名称或文件夹,然后点按 ⋮ → 刷新。
重命名时出现 名称无效
新名称会让条目落在项目之外(例如对项目根目录中的文件使用 ../x)。请使用不含斜杠或 .. 的普通名称。
已存在同名文件
仅限重命名:该文件夹中已有同名条目。请选择另一个名称。
无法重命名、重命名出错:…、无法删除 或 删除出错:…
文件系统拒绝了操作。点按 ⋮ → 刷新 后再试;该条目可能已在页面之外被更改或移除。
粘贴后出现 完成 2 个,失败 1 个
有些条目没有粘贴成功。常见原因是被剪切的条目的名称已存在于目标位置:不会自动为你重命名,所以请重命名它,或粘贴到别处。复制从不因此失败,它会添加 (1)、(2)……
目标无效
你选择用于粘贴的文件夹已不存在。点按 刷新 后重新选择。
删除时 没有询问
Settings → 行为 中的 删除前确认 已关闭。重新开启后,「文件」会在 删除 和 删除所选 之前再次询问。已经删除的条目无法找回:没有回收站。
已删除 3 个,失败 1 个
删除所选 移除了 3 个条目,有 1 个无法移除。点按 刷新 查看剩下什么。
按名称搜索时出现 无结果
搜索只覆盖你展开过的文件夹,并遵循隐藏文件规则。请展开你预期所在的文件夹,或开启 显示隐藏文件,然后再次搜索。node_modules 和 build 这类名称永远不会出现。
在文件夹中查找时出现 没有与 "text" 匹配的结果
请至少输入 2 个字符。搜索是按字面进行的,忽略大小写,并会跳过 2,000,000 字节或更大的文件。
有文件的项目显示 空项目
「文件」显示的是你最近打开的项目。请从 项目 重新打开正确的项目,或点按 ⋮ → 刷新。如果你从未打开过项目,页面背后没有实际内容:请先打开一个。
我在 Terminal 中创建的文件不在目录树中
没有任何东西监视文件夹。点按 ⋮ → 刷新。
计数显示 3 个文件夹,但我只看到 2 个
计数把页面读取到的所有内容加在一起,包括目录树隐藏的文件夹。
显示隐藏文件 不显示 .git
即使这时,九个名称仍被有意隐藏:node_modules、.git、.gradle、build、.idea、__pycache__、.DS_Store、.cache 和 .pocketcode。
编辑器的资源管理器中出现 该名称无效
名称中含有反斜杠、: ? < > | 之一、星号或双引号,含有空的部分(a//b),或含有 . 或 .. 部分。请重命名或重新输入。该路径不在项目内、已存在同名的文件或文件夹 和 无法完成此操作 是这个资源管理器的其他消息。
没有打开的项目。打开一个项目即可在此查看其文件。
编辑器的资源管理器没有可显示的项目。请从 项目 打开一个。
没有文件名包含“x”
编辑器资源管理器的筛选只匹配文件名,不匹配文件夹名称或内容。要搜索内容,请使用 在文件中搜索。
此设备上没有可用的文件选择器。
从设备打开文件… 需要系统文件选择器,而这台设备没有。