@capgo/capgo-skills
Version:
55 agent skills for Capacitor mobile development
78 lines (57 loc) • 1.73 kB
Markdown
# Filesystem
Node.js-like API for device file operations (read, write, delete, manage files and directories).
**Platforms:** Android, iOS, Web
## Installation
```bash
npm install @capacitor/filesystem
npx cap sync
```
## Configuration
### iOS
Add to `ios/App/PrivacyInfo.xcprivacy` inside `NSPrivacyAccessedAPITypes`:
```xml
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
```
Add to `ios/App/App/Info.plist`:
```xml
<key>UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
```
### Android
`READ_EXTERNAL_STORAGE` and `WRITE_EXTERNAL_STORAGE` permissions for `Directory.Documents` or `Directory.ExternalStorage` on Android 10 and older. Large files may need `android:largeHeap="true"` in `android/app/src/main/AndroidManifest.xml`.
## Usage
```typescript
import { Filesystem, Directory, Encoding } from '@capacitor/filesystem';
await Filesystem.mkdir({
path: 'secrets',
directory: Directory.Documents,
recursive: true,
});
await Filesystem.writeFile({
path: 'secrets/text.txt',
data: 'Hello',
directory: Directory.Documents,
encoding: Encoding.UTF8,
});
const contents = await Filesystem.readFile({
path: 'secrets/text.txt',
directory: Directory.Documents,
encoding: Encoding.UTF8,
});
const files = await Filesystem.readdir({
path: '',
directory: Directory.Documents,
});
```
## Notes
- Available directories: Documents, Data, Library, Cache, External, ExternalStorage, ExternalCache, LibraryNoCloud, Temporary.
- `downloadFile()` is deprecated; use `@capacitor/file-transfer` instead.