> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Dateien verwalten

> Durchsuche, lies, erstelle, verschiebe und lösche Dateien innerhalb deiner Anwendung.

```go theme={null}
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)
```

## Dateien eines Verzeichnisses auflisten

`api.GetApplicationFiles(appID, path)` gibt die Einträge eines Verzeichnisses als `[]squarecloud.FileInfo` zurück. Ein leerer Pfad listet das Anwendungs-Root auf.

```go theme={null}
entries, err := api.GetApplicationFiles("abc123def456abc123def456", "")
if err != nil {
	panic(err)
}

for _, entry := range entries {
	fmt.Println(entry.Type, entry.Name, entry.Size, entry.LastModified)
}
```

| Feld           | Typ      | Beschreibung                                 |
| -------------- | -------- | -------------------------------------------- |
| `Type`         | `string` | `"file"` oder `"directory"`                  |
| `Name`         | `string` | Name des Eintrags                            |
| `Size`         | `int`    | Größe in Bytes — für Verzeichnisse immer `0` |
| `LastModified` | `int64`  | Letzte Änderung in Unix-Millisekunden        |

## Eine Datei lesen

`api.ReadApplicationFile(appID, path)` gibt einen `squarecloud.FileContent` mit den Datei-Bytes zurück.

```go theme={null}
content, err := api.ReadApplicationFile("abc123def456abc123def456", "main.go")
if err != nil {
	panic(err)
}

fmt.Println(string(content.Data))
```

<Note>
  Die API liefert den Inhalt als Buffer-Objekt im Node.js-Stil (`{"type": "Buffer", "data": [...]}`). Das SDK dekodiert es für dich — `content.Data` ist ein einfaches `[]byte` (der Typ `ByteArray`), direkt einsatzbereit.
</Note>

## Eine Datei erstellen oder überschreiben

`api.PutApplicationFile(appID, path, content)` schreibt `content` an `path` und erstellt die Datei, falls sie nicht existiert, oder überschreibt sie, falls doch. Zurück kommt ein `squarecloud.FileWritten`.

```go theme={null}
written, err := api.PutApplicationFile(
	"abc123def456abc123def456",
	"config/settings.json",
	[]byte(`{"debug": false}`),
)
if err != nil {
	panic(err)
}

fmt.Println(written.Written) // true
```

<Note>
  Der Inhalt wird als UTF-8-String an die API gesendet — Uploads binärer Dateien werden noch nicht unterstützt. Um Binärdateien auszuliefern, verwende stattdessen einen [Commit](/de/sdks/go/commit_and_upload).
</Note>

## Eine Datei verschieben oder umbenennen

`api.MoveApplicationFile(appID, path, to)` verschiebt eine Datei oder benennt sie um.

```go theme={null}
err := api.MoveApplicationFile("abc123def456abc123def456", "main.go", "src/main.go")
if err != nil {
	panic(err)
}
```

## Eine Datei oder ein Verzeichnis löschen

<Warning>
  Das Löschen eines Verzeichnisses entfernt alles darin. Gelöschte Dateien lassen sich nicht wiederherstellen, es sei denn, du hast einen [Snapshot](/de/sdks/go/snapshots).
</Warning>

```go theme={null}
err := api.DeleteApplicationFile("abc123def456abc123def456", "src/old.go")
if err != nil {
	panic(err)
}
```
