---
title: "exists"
description: "检查虚拟路径是否指向一个存在的文件或目录。"
---


> 检查虚拟路径是否指向一个存在的文件或目录。

## 签名

```ts
KSM.fs.exists(args: {
  path: string;
}): Promise<{ exists: boolean }>
```

## 平台与权限

| Windows | Android |权限 |
| --- | --- | --- |
|支持 |支持 | `fs.read` |

## 参数

|参数 |类型 |必填 |说明 |
| --- | --- | --- | --- |
| `path` | `string` |是 |可读虚拟路径 |

## 返回值

|字段 |类型 |说明 |
| --- | --- | --- |
| `exists` | `boolean` |路径对应的资源是否存在 |

## 行为

- 支持 `data`、`cache`、`tmp`、`picked`、`res` 和 `assets` 根。
- 对不存在或无法访问的资源返回 `{ exists: false }`，而不是抛错。
- 不检查资源是否可读；文件存在但不可打开时仍可能返回 `true`。
- 不提供文件类型、大小或修改时间。
- Windows 实现检查文件系统实体；Android 打包资源通过资源能否打开判断。

## 示例

```ts
const { exists } = await KSM.fs.exists({
  path: 'app://data/settings.json'
});

if (!exists) {
  await KSM.fs.writeText({
    path: 'app://data/settings.json',
    content: '{}'
  });
}
```

## 错误

|错误 |场景 |
| --- | --- |
|普通 `TypeError` |路径未通过前端守卫 |
| `PERMISSION_DENIED` |越权虚拟路径 |
| `NOT_SUPPORTED` |对应文件服务未配置 |
| `TIMEOUT` |宿主未在默认时间内响应 |

## 相关

- [readText](/docs/kasumi/api/fs/read-text)
- [remove](/docs/kasumi/api/fs/remove)