IT개발/개발 일반
C#, 파일이 사용중인지 체크하기
all it
2024. 11. 14. 10:18
반응형
C#에서 FileInfo 객체를 사용하여 파일이 사용 중인지 확인하려면, 파일을 열 수 있는지 시도하는 방법을 사용할 수 있다. 만약 파일이 이미 다른 프로세스에 의해 사용 중이라면, 예외가 발생할 것이다. 다음은 파일이 사용 중인지 확인하는 간단한 코드 예제다:
using System;
using System.IO;
public class FileUsageChecker
{
public static bool IsFileInUse(FileInfo file)
{
try
{
using (FileStream stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
// 파일을 성공적으로 열었다면 사용 중이 아님
stream.Close();
}
}
catch (IOException)
{
// IOException이 발생하면 파일이 사용 중인 것임
return true;
}
return false;
}
public static void Main()
{
FileInfo fileInfo = new FileInfo("C:\\path\\to\\your\\file.txt");
bool inUse = IsFileInUse(fileInfo);
if (inUse)
{
Console.WriteLine("파일이 사용 중입니다.");
}
else
{
Console.WriteLine("파일이 사용 중이 아닙니다.");
}
}
}
이 코드에서는 FileStream을 사용하여 파일을 열어 본다. FileShare.None 옵션을 사용해 다른 프로세스가 파일을 사용할 수 없게 하며, 파일이 이미 사용 중이라면 IOException이 발생하게 된다. 예외가 발생하면 파일이 사용 중인 상태임을 의미하고, 그렇지 않으면 파일이 사용 중이 아니다.
반응형