본문 바로가기
MES 문의 : 010-8015-0400
IT개발/개발 일반

C#, 파일이 사용중인지 체크하기

by all it 2024. 11. 14.
반응형

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이 발생하게 된다. 예외가 발생하면 파일이 사용 중인 상태임을 의미하고, 그렇지 않으면 파일이 사용 중이 아니다.

반응형

댓글