2012-01-08 4 views
0

C:\FOO\BAA\filename.extension 파일이 C#을 사용하는 컴퓨터에서 사용되고 있는지 확인하는 방법?파일이 컴퓨터에서 사용되고 있는지 어떻게 알 수 있습니까?

try { 
var file = File.OpenRead(fileName); 
} catch { 
    // .. 
} 

을하지만 파일이 현재 시간에 다른 프로세스가있는 경우에만 예외를 반환

나는 그것을 시도했다. 미리 감사드립니다.

+4

"파일이 현재 시간의 다른 프로세스에 의해 발생하는 경우에만 예외를 반환합니다."... "사용 중"이라는 것은 무엇을 의미합니까? 그것은 다른 프로세스에서 사용할 수 있으며, 여기에서 예외가 발생합니다. –

+4

주제를 벗어나지 만 코드 샘플과 관련이 있습니다 : 예외 유형을 지정하지 않고 맹목적인'catch {/ * ... * /}'를하지 마십시오. 'OutOfMemoryException'와 같이 처리하지 말아야 할 예외가 있기 때문에 나쁜 형태입니다. 대신 처리 할 방법을 특별히 알고있는 예외 유형 만 잡습니다 (예 : 'UnauthorizedAccessException'. –

+0

@vucetica : "사용 중"이라고 말하면 파일이 현재 Windows에서 열려있는 것입니다. – Jack

답변

2

특정 파일 이 최근에 사용 된 것인지 확인하려는 경우File.GetLastAccessTime 방법을 조사 할 수 있습니다. 파일에 마지막으로 액세스 한 시간을 알려줍니다 (아무도 파일을 읽지 않았다고 가정).

그렇지 않으면 파일이 현재 사용 중인지 확인하려면, 게시 한 코드가 작동해야합니다.

+0

+1 모호한 질문에 대한 광고 문안 제안. – Steve

+0

@ 스티브 - 때로는이 사람들이 무엇을 생각하고 있는지 모를 때가 있습니다. –

+0

"사용 중"이라고 말하면 파일이 현재 Windows에서 열려있는 것입니다. – Jack

관련 문제