728x90
반응형
728x170
using System.IO;
using System.Runtime.InteropServices;
#region 파일 잠금 여부 구하기 - IsFileLocked(filePath, waitTime)
/// <summary>
/// 파일 잠금 여부 구하기
/// </summary>
/// <param name="filePath">파일 경로</param>
/// <param name="waitTime">대기 시간 (단위 : 초)</param>
/// <returns>파일 잠금 여부</returns>
public bool IsFileLocked(string filePath, int waitTime)
{
bool isLocked = true;
int i = 0;
while(isLocked && ((i < waitTime) || (waitTime == 0)))
{
try
{
using(File.Open(filePath, FileMode.Open))
{
}
return false;
}
catch(IOException exception)
{
int errorCode = Marshal.GetHRForException(exception) & ((1 << 16) - 1);
isLocked = errorCode == 32 || errorCode == 33;
i++;
if(waitTime != 0)
{
new System.Threading.ManualResetEvent(false).WaitOne(1000);
}
}
}
return isLocked;
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] Dictionary 클래스 : 이중 키 딕셔너리 사용하기 (0) | 2019.10.06 |
---|---|
[C#/COMMON] BitConverter 클래스 : 빅 엔디안(Big Endien) 바이트 배열에서 정수 구하기 (0) | 2019.10.06 |
[C#/COMMON] 빅 엔디안(Big Endien) 바이트 배열 구하기 (0) | 2019.10.06 |
[C#/COMMON] 16진수 문자열 구하기 (0) | 2019.10.06 |
[C#/COMMON] Trace 클래스 : TraceInformation 정적 메소드를 사용해 로그 기록하기 (0) | 2019.10.06 |
[C#/COMMON] 파일 잠금 여부 구하기 (0) | 2019.10.06 |
[C#/COMMON] DataTable 클래스 : 객체 컬렉션 구하기 (0) | 2019.09.20 |
[C#/COMMON] IDataReader 인터페이스 : 레코드를 객체로 변환하기 (0) | 2019.09.20 |
[C#/COMMON] PropertyInfo 클래스 : 타입의 속성 정보 배열 구하기 (0) | 2019.09.20 |
[C#/COMMON] 프로세스 CPU 사용률 제한하기 (0) | 2019.09.04 |
[C#/COMMON] 프로세스 CPU 사용률 제한하기 (0) | 2019.09.04 |
댓글을 달아 주세요