# DeleteFilesRule

Artifact: [androidx.test.ext:junit](https://developer.android.com/jetpack/androidx/releases/test-ext) [View Source](https://cs.android.com/search?q=file:androidx/test/ext/junit/rules/DeleteFilesRule.java+class:androidx.test.ext.junit.rules.DeleteFilesRule)

*** ** * ** ***


```
class DeleteFilesRule : TestRule
```

<br />

*** ** * ** ***

Deletes files recursively in Android storage directories after each test.

This ensures that each test case has a clean slate in terms of the file system, such that files created in one test don't impact any other test.

Files that are present at the start of the test are not deleted at the end.

Directories that are impacted are

- `context.getApplicationInfo().dataDir`
- `https://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()`
- `https://developer.android.com/reference/android/os/Environment.html#getDownloadCacheDirectory()`
- `https://developer.android.com/reference/android/content/Context.html#getExternalCacheDir()`
- `https://developer.android.com/reference/android/content/Context.html#getNoBackupFilesDir()` (Android 21+)
- `context.getApplicationInfo().deviceProtectedDataDir` (Android 24+)

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/test/ext/junit/rules/DeleteFilesRule#DeleteFilesRule()()` |

| ### Public functions |
|---|---|
| `https://junit.org/junit4/javadoc/latest/org/junit/runners/model/Statement.html!` | `https://developer.android.com/reference/kotlin/androidx/test/ext/junit/rules/DeleteFilesRule#apply(org.junit.runners.model.Statement,org.junit.runner.Description)(base: https://junit.org/junit4/javadoc/latest/org/junit/runners/model/Statement.html!, description: https://junit.org/junit4/javadoc/latest/org/junit/runner/Description.html!)` |

## Public constructors

### DeleteFilesRule

```
DeleteFilesRule()
```

## Public functions

### apply

```
fun apply(base: Statement!, description: Description!): Statement!
```