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

# WdDeleteSearchOptions

> WdDeleteSearchOptions 的参考，该结构设置包含和排除模式以及属性筛选器，用于选择要通过 WdDeleteRemoteFiles 删除的项。

# WdDeleteSearchOptions

指定删除操作的文件和目录筛选模式。

**引入版本：** [RIT 0.0.13-preview](/zh-CN/reference/remoting/release-versions#release-versions)。

## 语法

```cpp theme={null}
struct WdDeleteSearchOptions
{
    const char* includeFilePattern;
    const char* excludeFilePattern;
    const char* excludeDirPattern;
    uint64_t includeFileAttributes;
    uint64_t excludeFileAttributes;
    uint64_t includeDirAttributes;
    uint64_t excludeDirAttributes;
};
```

### 成员

`includeFilePattern`\
类型：**const char\***

包含与指定名称匹配的文件。支持通配符 `*` 和 `?`，多个模式可用分号（`;`）分隔。默认值为 `nullptr`，表示包含所有内容。

`excludeFilePattern`\
类型：**const char\***

排除与指定名称匹配的文件。支持通配符 `*` 和 `?`，多个模式可用分号（`;`）分隔。默认值为 `nullptr`，表示不排除任何文件。

`excludeDirPattern`\
类型：**const char\***

排除与指定名称（而非路径）匹配的目录。支持通配符 `*` 和 `?`。默认值为 `nullptr`，表示不从删除中排除任何目录。

`includeFileAttributes`\
类型：**uint64\_t**

包含设置了任一指定文件属性的文件。支持的值为 `FILE_ATTRIBUTE_READONLY`、`FILE_ATTRIBUTE_ARCHIVE`、`FILE_ATTRIBUTE_SYSTEM` 和 `FILE_ATTRIBUTE_HIDDEN`。默认值为 `0`，表示包含所有属性。有关文件属性的更多信息，请参阅[文件属性常量](https://learn.microsoft.com/windows/win32/fileio/file-attribute-constants)。

`excludeFileAttributes`\
类型：**uint64\_t**

排除设置了任一指定文件属性的文件。支持的值为 `FILE_ATTRIBUTE_READONLY`、`FILE_ATTRIBUTE_ARCHIVE`、`FILE_ATTRIBUTE_SYSTEM` 和 `FILE_ATTRIBUTE_HIDDEN`。默认值为 `0`，表示不排除任何属性。有关文件属性的更多信息，请参阅[文件属性常量](https://learn.microsoft.com/windows/win32/fileio/file-attribute-constants)。

`includeDirAttributes`\
类型：**uint64\_t**

包含设置了任一指定文件属性的目录。支持的值为 `FILE_ATTRIBUTE_READONLY`、`FILE_ATTRIBUTE_ARCHIVE`、`FILE_ATTRIBUTE_SYSTEM` 和 `FILE_ATTRIBUTE_HIDDEN`。默认值为 `0`，表示包含所有属性。

`excludeDirAttributes`\
类型：**uint64\_t**

排除设置了任一指定文件属性的目录。支持的值为 `FILE_ATTRIBUTE_READONLY`、`FILE_ATTRIBUTE_ARCHIVE`、`FILE_ATTRIBUTE_SYSTEM` 和 `FILE_ATTRIBUTE_HIDDEN`。默认值为 `0`，表示不排除任何属性。

## 示例

**仅删除 `.pdb` 和 `.log` 文件：**

```cpp theme={null}
WdDeleteSearchOptions searchOptions = {
    .includeFilePattern = "*.pdb;*.log",
    .excludeFilePattern = nullptr,
    .excludeDirPattern = nullptr,
    .includeFileAttributes = 0,
    .excludeFileAttributes = 0,
    .includeDirAttributes = 0,
    .excludeDirAttributes = 0
};
```

**删除除存档数据目录以外的所有内容：**

```cpp theme={null}
WdDeleteSearchOptions searchOptions = {
    .includeFilePattern = nullptr,
    .excludeFilePattern = nullptr,
    .excludeDirPattern = "SaveData",
    .includeFileAttributes = 0,
    .excludeFileAttributes = 0,
    .includeDirAttributes = 0,
    .excludeDirAttributes = 0
};
```

**删除已存档的文件，但保留只读文件和隐藏目录：**

```cpp theme={null}
WdDeleteSearchOptions searchOptions = {
    .includeFilePattern = nullptr,
    .excludeFilePattern = nullptr,
    .excludeDirPattern = nullptr,
    .includeFileAttributes = FILE_ATTRIBUTE_ARCHIVE,
    .excludeFileAttributes = FILE_ATTRIBUTE_READONLY,
    .includeDirAttributes = 0,
    .excludeDirAttributes = FILE_ATTRIBUTE_HIDDEN
};
```

> \[!NOTE]\
> 当包含模式与排除模式发生冲突时，排除模式优先，该项将不会被删除。

## 备注

通过 `searchOptions` 参数将此结构传递给 [WdDeleteRemoteFiles](/zh-CN/reference/remoting/functions/wddeleteremotefiles)，以筛选选择删除哪些文件和目录。如果为 `searchOptions` 传递 `nullptr`，则包含所有项，不进行任何筛选。

这些选项仅在 `remoteFolderPath` 解析为文件夹时适用。当 `remoteFolderPath` 解析为单个文件时，将忽略这些选项。

如果经过筛选的删除留下了某些项，即使在 [WdDeleteOptions](/zh-CN/reference/remoting/structs/wddeleteoptions) 中将 `deleteRootFolder` 设置为 `true`，也会保留根文件夹，因为只有在文件夹为空时才会删除该文件夹。

## 要求

| 要求 | 值 |
| - | - |
| **头文件** | WdRemoteIteration.h |
| **库** | wdremoteapi.lib |
| **支持的操作系统** | Windows 11 及更高版本 |
| **支持的体系结构** | x64、ARM64 |

## 另请参阅

* [WdDeleteRemoteFiles](/zh-CN/reference/remoting/functions/wddeleteremotefiles)
* [WdDeleteOptions](/zh-CN/reference/remoting/structs/wddeleteoptions)
* [XBOX PC 远程迭代 API](/zh-CN/reference/remoting/remoteiteration_members)


## Related topics

- [WdDeleteOptions](/zh-CN/reference/remoting/structs/wddeleteoptions.md)
- [WdDeleteRemoteFiles](/zh-CN/reference/remoting/functions/wddeleteremotefiles.md)
- [WdCopySearchOptions](/zh-CN/reference/remoting/structs/wdcopysearchoptions.md)
- [WdRemoteCopy](/zh-CN/reference/remoting/functions/wdremotecopy.md)
- [WdCopyOptions](/zh-CN/reference/remoting/structs/wdcopyoptions.md)
