2012-02-06 3 views
2

목표는 다른 프로그램에서 파일을 출력하는 폴더에서 파일을 주기적으로 읽은 다음 코드를 내 코드의 다른 부분에 공급하는 것입니다.네트워크 공유 폴더에서 주기적으로 파일을 읽는 가장 효율적인 방법은 무엇입니까?

성능과 읽기 쉽고 쉬운 코드 간의 최상의 트레이드 오프를 통해 어떻게이 작업을 수행 할 수 있습니까?

는 (I (그리고 아니,이 숙제를하지 않습니다 :)) 당신이 시계 서비스를 사용할 수있는 자바에서는

+2

C# –

+0

에서'FileSystemWatcher'을 시도하십시오 효율성은 파일 크기와 폴링 빈도에 따라 다릅니다. 그러나 작가가 'file.dat.partial'과 같은 임시 이름으로 파일을 작성하고 완료되면 'file.dat'로 이름을 변경하면 많은 고통을 피할 수 있습니다. 이름 바꾸기는 모든 운영 체제에서 원 자성입니다. 설문 조사는 이러한 부분이 아닌 파일을보고 가져 오기가 성공한 후 삭제해야합니다. –

+1

FileSystemWatcher의 경우 http://stackoverflow.com/questions/239988/filesystemwatcher-vs-polling-to-watch-for-changes 및 http://stackoverflow.com/questions/960318/filesystemwatcher-fails-to-access를 참조하십시오. -network-drive – Kramii

답변

1

I/O는 대부분의 프로그램에 대한 병의 목입니다하지만 성능려고하는 경우에 당신이 도울 수있는 몇 가지가있다. 하나는 필요할 때만 읽습니다. 이 작업은 FileSystemWatcher를 사용하여 파일이 변경된 시점을 알려줌으로써 수행 할 수 있습니다. 두 번째는 가능한 경우 작업을 완료하지 않고 계속할 수있는 경우 I/O를 수행 할 새 스레드를 생성합니다.

관련 문제