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

# WdCopySearchOptions

> WdCopySearchOptions

# WdCopySearchOptions

コピー操作のファイルとディレクトリのフィルター パターンを指定します。

**導入バージョン:** [RIT 0.0.8-Preview](https://docs.xbox.com/ja-jp/reference/remoting/release-versions.md#release-versions)。メンバーの型と利用可否はリリースによって異なります。「[変更履歴](#change-history)」を参照してください。

> [!WARNING]
>
> `CopyFrom` の場合、名前パターンはローカルの差分列挙にのみ影響し、リモート ファイルの選択は制限しません。

## 構文

```cpp theme={null}
struct WdCopySearchOptions 
{ 
    const char* includeFilePattern;
    const char* excludeFilePattern;
    const char* excludeDirPattern;
    uint32_t includeFileAttributes;
    uint32_t excludeFileAttributes;
    uint32_t includeDirectoryAttributes;
    uint32_t excludeDirectoryAttributes;
};
```

### メンバー

`_In_z_ includeFilePattern`\
Type: **const char\***

コピー操作に含めるファイルを指定する glob パターン (たとえば、すべてのファイルを含める場合は `"*"`、実行可能ファイルと DLL のみを含める場合は `"*.exe;*.dll"`)。

`_In_z_ excludeFilePattern`\
Type: **const char\***

コピー操作から除外するファイルを指定する glob パターン (たとえば、デバッグ シンボルを除外する場合は `"*.pdb"`)。

`_In_z_ excludeDirPattern`\
Type: **const char\***

コピー操作から除外するディレクトリの名前 (パスではありません) を指定する glob パターン (たとえば、Visual Studio とビルド出力のディレクトリを除外する場合は `".vs;obj"`)。

`includeFileAttributes`\
Type: **uint32\_t**

ファイル属性のビットマスク。指定した属性のいずれかを持つファイルがコピーに含まれます。属性でフィルター処理しない場合は `0` に設定します。ファイル属性の詳細については、「[File Attribute Constants](https://learn.microsoft.com/windows/win32/fileio/file-attribute-constants)」を参照してください。

`excludeFileAttributes`\
Type: **uint32\_t**

ファイルをコピーから除外する原因となるファイル属性のビットマスク。属性でフィルター処理しない場合は `0` に設定します。ファイル属性の詳細については、「[File Attribute Constants](https://learn.microsoft.com/windows/win32/fileio/file-attribute-constants)」を参照してください。

`includeDirectoryAttributes`\
Type: **uint32\_t**

**導入バージョン:** [RIT 0.0.13-preview](https://docs.xbox.com/ja-jp/reference/remoting/release-versions.md#release-versions)。

ディレクトリ属性のビットマスク。指定した属性のいずれかを持つディレクトリがコピーに含まれます。これは、`includeFileAttributes` をディレクトリに適用したものと同じです。属性でフィルター処理しない場合は `0` に設定します。

`excludeDirectoryAttributes`\
Type: **uint32\_t**

**導入バージョン:** [RIT 0.0.13-preview](https://docs.xbox.com/ja-jp/reference/remoting/release-versions.md#release-versions)。

ディレクトリをコピーから除外する原因となるディレクトリ属性のビットマスク。これは、`excludeFileAttributes` をディレクトリに適用したものと同じです。属性でフィルター処理しない場合は `0` に設定します。

## 例

以下の名前パターンの例では `CopyTo` を使用しています。

**`.exe` ファイルと `.dll` ファイルのみをコピーする:**

```cpp theme={null}
WdCopySearchOptions searchOptions = {
    .includeFilePattern = "*.exe;*.dll",
    .excludeFilePattern = nullptr,
    .excludeDirPattern = nullptr,
    .includeFileAttributes = 0,
    .excludeFileAttributes = 0,
    .includeDirectoryAttributes = 0,
    .excludeDirectoryAttributes = 0
};
```

**`temp` という名前のディレクトリをコピーから除外する:**

```cpp theme={null}
WdCopySearchOptions searchOptions = {
    .includeFilePattern = nullptr,
    .excludeFilePattern = nullptr,
    .excludeDirPattern = "temp",
    .includeFileAttributes = 0,
    .excludeFileAttributes = 0,
    .includeDirectoryAttributes = 0,
    .excludeDirectoryAttributes = 0
};
```

**読み取り専用ファイルまたはシステム ファイルのみをコピーし、隠しファイルを除外する:**

```cpp theme={null}
WdCopySearchOptions searchOptions = {
    .includeFilePattern = nullptr,
    .excludeFilePattern = nullptr,
    .excludeDirPattern = nullptr,
    .includeFileAttributes = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM,
    .excludeFileAttributes = FILE_ATTRIBUTE_HIDDEN,
    .includeDirectoryAttributes = 0,
    .excludeDirectoryAttributes = 0
};
```

**隠しディレクトリのみを無視する:**

```cpp theme={null}
WdCopySearchOptions searchOptions = {
    .includeFilePattern = nullptr,
    .excludeFilePattern = nullptr,
    .excludeDirPattern = nullptr,
    .includeFileAttributes = 0,
    .excludeFileAttributes = 0,
    .includeDirectoryAttributes = 0,
    .excludeDirectoryAttributes = FILE_ATTRIBUTE_HIDDEN
};
```

> [!NOTE]
>
> 包含パターンと除外パターンが競合する場合は、除外パターンが優先され、ファイルはコピーされません。

## 解説

コピー操作に含めるファイルとディレクトリをフィルター処理するには、この構造体を `searchOptions` パラメーターを介して [WdRemoteCopy](https://docs.xbox.com/ja-jp/reference/remoting/functions/wdremotecopy.md) に渡します。`searchOptions` に `nullptr` を渡した場合は、フィルター処理なしですべてのファイルがコピーされます。

## 変更履歴

| リリース | 変更内容 |
| - | - |
| [RIT 0.0.13-preview](https://docs.xbox.com/ja-jp/reference/remoting/release-versions.md#release-versions) | `includeFileAttributes` と `excludeFileAttributes` を `uint64_t` から `uint32_t` に変更しました。`includeDirectoryAttributes` と `excludeDirectoryAttributes` (どちらも `uint32_t`) を追加しました。 |
| [RIT 0.0.8-Preview](https://docs.xbox.com/ja-jp/reference/remoting/release-versions.md#release-versions) | 3 つの名前パターン フィールドと 2 つの `uint64_t` ファイル属性マスクを導入しました。 |

RIT 0.0.13-preview の変更により、構造体のレイアウトが変わります。ネイティブの呼び出し元は、対応する API NuGet パッケージのヘッダーとライブラリを使用して再ビルドしてください。古い構造体レイアウトを新しい API DLL に渡さないでください。

## 要件

| 要件 | 値 |
| - | - |
| **ヘッダー** | WdRemoteIteration.h |
| **ライブラリ** | wdremoteapi.lib |
| **サポートされている OS** | Windows 11 以降 |
| **サポートされているアーキテクチャ** | x64、ARM64 |

## 関連項目

* [WdRemoteCopy](https://docs.xbox.com/ja-jp/reference/remoting/functions/wdremotecopy.md)
* [XBOX PC Remote Iteration API](https://docs.xbox.com/ja-jp/reference/remoting/remoteiteration_members.md)


## Related topics

- [WdRemoteCopy](https://docs.xbox.com/ja-jp/reference/remoting/functions/wdremotecopy.md)
- [XBOX PC Remote Iteration API](https://docs.xbox.com/ja-jp/reference/remoting/remoteiteration_members.md)
- [WdCopyOptions](https://docs.xbox.com/ja-jp/reference/remoting/structs/wdcopyoptions.md)
- [WdDeleteSearchOptions](https://docs.xbox.com/ja-jp/reference/remoting/structs/wddeletesearchoptions.md)
- [WdDeleteRemoteFiles](https://docs.xbox.com/ja-jp/reference/remoting/functions/wddeleteremotefiles.md)
