상세 컨텐츠

본문 제목

파일 사용중인지 확인

C#

by 탑~! 2016. 2. 25. 11:22

본문


/// <summary>

/// 파일이 다른 프로세스에 의해 사용중인지 점검

/// </summary>

/// <param name="filePath">파일경로</param>

/// <param name="secondsToWait">사용중이면 잠시 기다릴 시간</param>

/// <returns>사용중이면 true</returns>

public static bool IsFileLocked(string filePath, int secondsToWait)

{

    bool isLocked = true;

    int i = 0;

    while (isLocked && ((i < secondsToWait) || (secondsToWait == 0)))

    {

        try

        {

            using (File.Open(filePath, FileMode.Open)) { }

            return false;

        }

        catch (IOException e)

        {

            var errorCode = System.Runtime.InteropServices.Marshal.GetHRForException(e) & ((1 << 16) - 1);

            isLocked = errorCode == 32 || errorCode == 33;

            i++;

            if (secondsToWait != 0)

                new System.Threading.ManualResetEvent(false).WaitOne(1000);

        }

    }

 

    return isLocked;

}




출처 : http://kimstar.kr/5990/

'C#' 카테고리의 다른 글

.NET CLR Project 만들기 샘플(음력/양력변환)  (0) 2016.02.26
DES 파일 암호화 / 복호화  (0) 2016.02.25
IP Address, MAC Address 구하기  (0) 2016.02.25
유선 IPv4 Address 구하기  (0) 2016.02.25
ODBC 연결문자열  (0) 2016.02.02

관련글 더보기