본문 바로가기
반응형

전체 글81

C#로 특정 폴더 내 파일 이름 변경 아래는 특정 폴더 내 모든 파일을 읽고, .exe 확장자를 가진 파일에서 파일 이름의 cam2라는 단어를 cam1로 바꾸는 C# 코드입니다.using System;using System.IO;class Program{ static void Main(string[] args) { // 특정 폴더 경로 설정 string folderPath = @"C:\Your\Folder\Path"; if (!Directory.Exists(folderPath)) { Console.WriteLine("지정된 폴더가 존재하지 않습니다."); return; } // 폴더 내 모든 파일 검색 s.. 2025. 1. 3.
WNetUseConnection 함수의 리턴값과 오류 코드 목록 WNetUseConnection은 Windows API의 함수로, 네트워크 리소스에 연결을 설정하는 데 사용됩니다. 이 함수는 Mpr.dll 라이브러리에 있으며, C#에서는 P/Invoke를 사용하여 호출합니다. 함수의 반환값은 성공 또는 실패를 나타내며, 실패 시 다양한 오류 코드를 반환합니다.리턴값 목록다음은 WNetUseConnection 함수의 주요 반환값 리스트입니다:성공 코드NO_ERROR (0)연결이 성공적으로 완료되었습니다.일반 오류 코드ERROR_ACCESS_DENIED (5)액세스 권한이 거부되었습니다.ERROR_INVALID_HANDLE (6)잘못된 핸들이 전달되었습니다.ERROR_NOT_ENOUGH_MEMORY (8)메모리가 부족하여 작업을 완료할 수 없습니다.ERROR_BAD_NE.. 2025. 1. 3.
아이템 1: 지역변수를 선언할 때에는 var를 사용하는 것이 낫다 아이템 1: 지역변수를 선언할 때에는 var를 사용하는 것이 낫다이 항목은 **지역 변수(local variable)**를 선언할 때, 명시적인 타입 선언 대신 var를 사용하는 것이 좋다는 점을 강조합니다. C#에서 var는 암시적 타입 추론(implicit type inference)을 사용하여 컴파일러가 변수의 타입을 자동으로 추론하도록 돕습니다. 이를 통해 코드가 더 간결하고 읽기 쉬워지며, 타입 변경이 있을 경우 코드 수정이 더 용이해집니다.1. var의 기본 개념var는 지역 변수의 타입을 컴파일러가 자동으로 추론하도록 하는 키워드입니다.변수 선언 시 타입을 명시하지 않고, 변수에 할당되는 값의 타입에 맞게 컴파일러가 해당 타입을 추론합니다.var는 컴파일 타임에 타입이 결정되므로, 실행 시 .. 2024. 12. 31.
원격 차등 압축(Remote Differential Compression) API 지원 기능 비활성화의 이점 원격 차등 압축 (RDC) API 지원 기능 비활성화의 이점1. 서버와 클라이언트 리소스 절약RDC는 변경된 데이터만 전송하기 위해 추가적인 시스템 자원을 사용합니다. 이 기능을 비활성화하면 자원 소모를 줄이고, 시스템 성능을 최적화할 수 있습니다.2. 파일 전송 속도 증가RDC는 변경된 데이터를 비교하고 전송하는데 시간이 소요될 수 있습니다. 이를 끄면 전체 파일을 빠르게 전송할 수 있어 속도가 향상될 수 있습니다, 특히 네트워크 대역폭이 충분한 경우 유리합니다.3. 복잡한 설정 회피RDC 기능을 사용하면 추가적인 비교 및 차등 압축 작업이 필요합니다. 기능을 끄면 파일 동기화 과정이 간단해지고 관리가 쉬워집니다.4. 레거시 시스템 및 호환성 유지오래된 시스템에서는 RDC가 제대로 작동하지 않거나 성능.. 2024. 12. 31.
C#에서 WORD, DWORD와 비트 연산을 처리하는 방법 C#에서 WORD, DWORD와 비슷한 개념을 처리하기 위한 방법과, 관련된 매크로를 C# 코드로 변환하는 예제를 제공하겠습니다. C#에서는 #define 매크로를 직접 사용할 수 없지만, 대신 메서드나 표현식으로 대체할 수 있습니다.1. WORD와 DWORD 데이터 타입C#에서 WORD는 보통 ushort (2바이트, 16비트)로, DWORD는 uint (4바이트, 32비트)로 사용됩니다.ushort: 16비트 부호 없는 정수uint: 32비트 부호 없는 정수2. LOWORD와 HIWORDLOWORD와 HIWORD는 DWORD에서 하위 16비트와 상위 16비트를 추출하는 매크로입니다. 이를 C#에서는 메서드로 변환할 수 있습니다.LOWORDpublic static ushort LOWORD(uint l).. 2024. 12. 31.
C#에서 `Thread.Sleep(1~10)`을 사용하는 이유와 주의사항 C#에서 Thread.Sleep(1~10)을 while 문 내에서 사용하는 이유는 일반적으로 CPU 사용량을 조절하고, 다른 스레드나 프로세스가 실행될 시간을 확보하기 위함입니다. 이를 더 자세히 설명하면 다음과 같습니다:1. CPU 사용량 감소while 문은 기본적으로 조건이 만족하는 한 계속 반복됩니다. 만약 Thread.Sleep() 없이 while 문이 실행되면, CPU가 쉬지 않고 루프를 실행하며 100% 사용될 수 있습니다.Thread.Sleep(1~10)은 현재 스레드를 지정한 시간(1~10ms) 동안 일시 중단하여, CPU 자원을 다른 작업에 사용할 수 있도록 합니다.이는 busy-waiting 문제를 방지하며, 시스템의 효율성을 높이는 데 기여합니다.2. 다른 스레드/프로세스 실행 여유 .. 2024. 12. 31.
C#에서 /unsafe 기능과 사용법 C#에서 /unsafe는 **"unsafe code"**를 활성화하는 컴파일러 옵션입니다. "unsafe" 코드는 메모리 주소를 직접 다루거나 포인터를 사용하는 코드로, 안전하지 않다고 간주되는 코드 영역을 의미합니다. C#은 기본적으로 안전한 언어로 설계되어 있기 때문에, 포인터 연산이나 메모리 접근에 대한 제약이 있지만, /unsafe 옵션을 사용하면 이러한 제약을 해제하고 비관리 메모리와 포인터를 사용할 수 있습니다.unsafe 코드란?Unsafe code는 다음과 같은 특징을 가집니다:포인터: unsafe 코드에서는 포인터를 사용할 수 있습니다. 이는 C, C++과 비슷한 방식으로 메모리 주소를 직접 다루는 방법입니다.메모리 주소 직접 접근: 포인터를 사용하면 객체나 배열의 메모리 주소를 직접 조.. 2024. 12. 30.
C# CS0227 오류 설명 및 해결 방법 C#에서 CS0227 오류는 "스위치 문의 식이 값이 아니거나 조건식이 아닌 형식"이라는 오류 메시지로, 주로 switch 문에서 발생합니다. 이 오류는 switch 문에서 사용된 표현식이 유효한 값이 아니거나, 조건으로 사용할 수 없는 타입일 때 발생합니다.오류 원인CS0227 오류는 switch 문에 사용되는 표현식이 컴파일러가 처리할 수 있는 형식이 아닐 때 발생합니다. switch 문은 기본적으로 정수형 값(예: int, enum), 문자형 값(예: char), 문자열(예: string), 또는 bool 타입과 같은 몇 가지 특정한 타입만 허용합니다. 만약 switch 문에서 이러한 타입이 아닌 값을 사용하면 CS0227 오류가 발생합니다.예시 코드 (오류 발생)string value = "Hel.. 2024. 12. 30.
C# ThreadPool: 스레드 관리와 작업 처리 최적화 C#의 ThreadPoolThreadPool은 C#의 .NET Framework와 .NET Core에서 제공하는 기능으로, 작업(Work Items)을 처리하기 위해 재사용 가능한 스레드 풀을 관리하는 클래스입니다. System.Threading.ThreadPool 네임스페이스에 정의되어 있으며, 애플리케이션의 성능을 높이고 스레드 관리의 복잡성을 줄이는 데 사용됩니다.ThreadPool의 주요 개념스레드 풀(Thread Pool)이란?스레드 풀은 **미리 생성된 스레드의 풀(pool)**입니다. 새 작업 요청이 있을 때마다 새 스레드를 만드는 대신, 기존에 생성된 스레드를 재사용합니다.이렇게 함으로써 스레드 생성 및 삭제로 인한 비용을 줄이고, 자원 낭비를 방지합니다.ThreadPool의 작동 방식작업.. 2024. 12. 30.
Visual Studio 2022에서 대괄호 이동 단축키와 설정 방법 Visual Studio 2022에서 대괄호(중괄호 또는 괄호) 사이로 이동하는 기본 단축키는 다음과 같습니다:1. 대괄호 이동 단축키 (Brace Matching Navigation)Ctrl + ]커서를 현재 위치에서 짝이 되는 괄호(또는 중괄호)로 이동시킵니다.지원하는 괄호 유형: () (소괄호), {} (중괄호), [] (대괄호)2. 선택 영역 포함 이동만약 짝이 되는 괄호까지의 텍스트를 선택하려면 다음 단축키를 사용하세요:Ctrl + Shift + ]커서부터 짝이 되는 괄호까지 텍스트를 선택합니다.3. 단축키 설정 확인 및 변경만약 위 단축키가 작동하지 않는다면:Tools > Options > Environment > Keyboard로 이동합니다."Show commands containing" 필.. 2024. 12. 30.
반응형