> ## 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/ko/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`\
형식: **const char\***

복사 작업에 포함할 파일을 지정하는 glob 패턴입니다(예: 모든 파일을 포함하려면 `"*"`, 실행 파일과 DLL만 포함하려면 `"*.exe;*.dll"`).

`_In_z_ excludeFilePattern`\
형식: **const char\***

복사 작업에서 제외할 파일을 지정하는 glob 패턴입니다(예: 디버그 기호를 제외하려면 `"*.pdb"`).

`_In_z_ excludeDirPattern`\
형식: **const char\***

복사 작업에서 제외할 디렉터리 이름(경로가 아님)을 지정하는 glob 패턴입니다(예: Visual Studio 및 빌드 출력 디렉터리를 제외하려면 `".vs;obj"`).

`includeFileAttributes`\
형식: **uint32\_t**

파일 특성의 비트마스크입니다. 지정된 특성 중 하나라도 있는 파일이 복사에 포함됩니다. 특성으로 필터링하지 않으려면 `0`으로 설정합니다. 파일 특성에 대한 자세한 내용은 [파일 특성 상수](https://learn.microsoft.com/windows/win32/fileio/file-attribute-constants)를 확인하세요.

`excludeFileAttributes`\
형식: **uint32\_t**

파일을 복사에서 제외시키는 파일 특성의 비트마스크입니다. 특성으로 필터링하지 않으려면 `0`으로 설정합니다. 파일 특성에 대한 자세한 내용은 [파일 특성 상수](https://learn.microsoft.com/windows/win32/fileio/file-attribute-constants)를 확인하세요.

`includeDirectoryAttributes`\
형식: **uint32\_t**

**도입된 릴리스:** [RIT 0.0.13-preview](https://docs.xbox.com/ko/reference/remoting/release-versions.md#release-versions).

디렉터리 특성의 비트마스크입니다. 지정된 특성 중 하나라도 있는 디렉터리가 복사에 포함됩니다. 디렉터리에 적용되는 `includeFileAttributes`와 동일합니다. 특성으로 필터링하지 않으려면 `0`으로 설정합니다.

`excludeDirectoryAttributes`\
형식: **uint32\_t**

**도입된 릴리스:** [RIT 0.0.13-preview](https://docs.xbox.com/ko/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/ko/reference/remoting/functions/wdremotecopy.md)에 전달하여 복사 작업에 포함할 파일과 디렉터리를 필터링합니다. `searchOptions`에 `nullptr`을 전달하면 필터링 없이 모든 파일이 복사됩니다.

## 변경 기록

| 릴리스 | 변경 내용 |
| - | - |
| [RIT 0.0.13-preview](https://docs.xbox.com/ko/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/ko/reference/remoting/release-versions.md#release-versions) | 세 개의 이름 패턴 필드와 두 개의 `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/ko/reference/remoting/functions/wdremotecopy.md)
* [XBOX PC Remote Iteration API](https://docs.xbox.com/ko/reference/remoting/remoteiteration_members.md)


## Related topics

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