자바에서 파일이 전송중인지 완료되었는지를 알수 있나요?
글쓴이: apolo72 / 작성시간: 수, 2005/03/16 - 10:17오전
정해진 폴더에 FTP를 통해서 텍스트 파일을 전송받고, 이 폴더를 데몬에서 감시하고 있다가 파일이 생성되면 파일을 읽어 라인단위로 정보를 읽어 처리하는 작업입니다.
텍스트 정보에 헤더에 파일 사이즈나 라인수 혹은 파일의 끝에 일정표시가 있다면 쉬울테지만, 전송하는 쪽에 요구를 했지만 받아들여지지 않고 있습니다.
따라서 현재 텍스트파일은 단순 정보들로만 구성되어 있는 상태고 데몬을 띄어 놓자니 파일전송중에 처리를 하여 현재 전송중인 부분까지만 처리를 하고 있는 상태입니다.
이런 문제를 경험해 보신 분들께서 해결책이나 좋은 팁들을 제시해 주셨으면 합니다.
Forums:
임시 폴더를 하나 둘 수도 있고... 임시 파일을 생성할 수도 있고...
임시 폴더를 하나 둘 수도 있고... 임시 파일을 생성할 수도 있고...
파일 전송이 완료 되었다는 이벤트 메시지 같은걸 받도록 구현 할 수도 있겠지요.
~
-------------------------
The universe is run by the complex interweaving of three elements: matter, energy, and enlightened self-interest.
- G'kar, Babylon 5
초보라서 그런지 그런 방식을 써야 할거 같긴 하지만.. 잘 이해가 되질
초보라서 그런지 그런 방식을 써야 할거 같긴 하지만.. 잘 이해가 되질 않습니다.
자바에서 파일 전송이 완료되었다는 이벤트 메시지를 받을 수 있나요?
받을수 있다면 무엇을 알아야 하는지 또 구현하는데 있어서 방향을 어떻게 잡아야 할지 난감합니다.
개발자 왕국을 꿈꾸며......
FTP를 이용해서 데이터를 받으신다면, 파일 전송이 완료되었을 때 FTP
FTP를 이용해서 데이터를 받으신다면, 파일 전송이 완료되었을 때 FTP 서버가 반응하는 방식을 아실 수 있을 것 같습니다. 예를 들어 명령어를 입력하는 프롬프트가 온다든지 아니면 데이터 전송 채널이 닫힌다든지. 이런 것을 점검해서 처리하시면 되지 않을까요?
간단하게는전송중일때 file.tmp 로 저장전송후 전송하는
간단하게는
전송중일때 file.tmp 로 저장
전송후 전송하는 쪽에서 file.tmp 의 이름을 온전한 filename으로 고칩니다.
인생의 무게를 느껴라. 아는 만큼 보이는게다.
답변 올려주신 모든 분들께 감사드립니다. ^^구현하기 위해 조사해 보
답변 올려주신 모든 분들께 감사드립니다. ^^
구현하기 위해 조사해 보아야 할 방향이나 해결방안등을 제시해 주셨네요.
제일 간단한 방법으로는 전송하는 측에 요구를 하는거겠지만... 요구사항 수렴이 되질 않는 상황이라서 본의 아니게 이렇게 어려운 방법을 택하게 되었네요..
개발자 왕국을 꿈꾸며......
엄... 답을 잘못 했습니다. 써주신 질문을 제대로 못읽었네요
엄...
답을 잘못 했습니다.
써주신 질문을 제대로 못읽었네요.
Client는 그냥 일반적인 FTP를 쓰는거군요. 수정도 안해주고...
저는 Client가 따로 구현된 FTP인줄... 그리고 수정도 해달라면 해주는 건 줄 알고 썼습니다.
이 경우는... File 이 기록중일 때에는 File을 사용하는 process가 있으니까,
해당 File을 open해서 FileOutputStream을 생성해 보면 해당 파일을 사용하는 다른 Process가 있는지 알 수 있습니다.
테스트 해보니 File Class의 canWrite()는 원하는 결과를 주지 않는 듯 하고, FileOutputStream에서 Exception을 던져주네요.
아니면 File에 Lock을 걸어보면 다른 Process에서 사용중인 File인지 알 수 있을 듯 합니다.
이상한 답변 드려서 죄송합니다. ^^
-------------------------
The universe is run by the complex interweaving of three elements: matter, energy, and enlightened self-interest.
- G'kar, Babylon 5
우선은 파일의 lastModified()를 사용해서 프로그래밍 할 수 있
우선은 파일의 lastModified()를 사용해서 프로그래밍 할 수 있는지를 살펴보시고,
당장은 어려울 수도 있겠지만 경우에 따라서는
http://www.w3.org/Protocols/rfc959/A1_PageStructure.html
이걸 보고, ftp port를 감시하는 custom FTP server를 만드는 것이 가장 최선의 방법일 듯 합니다.
java ftp server로 구글링 해보시고, 혹 필요하시면 제가 이전에 비슷한 것 만들어 본 경험이 있으니 PM해도 괜찮습니다.
----
I paint objects as I think them, not as I see them.
atie's minipage
댓글 달기