이동식 디스크 buffer refreshing ????
2013.11.10 16:22
질문하시기 전에 게시판 검색을 먼저 해주세요.
타블릿PC, 스마트폰에 관한 질문 또는 요청은 <포터블기기 질문답변> 게시판을 이용해주세요.
=============================================================================================
USB 로 연결된 이동식 디스크 ( USB memory) 가 있습니다.
그런데, 보통의 USB memory 달리, USB memory module 자체에 local CPU 가 있어서,
필요한 경우, 이 local CPU 가 파일을 생성 한 다음 PC 에서 읽으려고 합니다.
그런데 문제는, PC 의 disk driver 및 파일시스템 입장에서는 새로운 파일이 생성 되었다는 것을 알 수 없다는 것입니다.
분명히 존재는 하지만 open 하려고 하면 에러가 납니다.
그래서 궁여지책으로 코드 상에서 파일을 오픈 하기 전에 chkdsk shell 커맨드를 한번 실행 해 주니까
일단 동작은 하는데, 이것은 뭔가 무식한 방법 같고요...
Local CPU 에서 파일을 생성 한 다음에 USB connection 을 drop 했다가 다시 connect 해 주면 확실 하기는 할텐데,
이것 역시 매우 부자연스럽습니다.
혹시 저런 용도로 사용할 수 있는 System API 가 있는지요????
Coding 은 Visual studio 입니다.
open할때 나는 error가 어떤 에러인가요? 거기에 따라 달라질듯 합니다.
그리고 USB CPU에서 파일을 생성되었을때 기다리고 있으면 탐색기에 파일이 나타나나요? 그렇다면 디렉토리를 모니터링해서 FILE_ADD 이벤트를 받아오면 될테구요.
기다려도 탐색기에 파일이 나타나지 않는다면, USB CPU의 파일생성 프로그램에 심각한 버그가 있는듯 합니다. 어차피 FAT32나 기타 표준 파일시스템을 사용하고 있을텐데, 표준 파일 시스템에 맞춰서 생성된거라면 Windows의 파일시스템에서는 새 파일이 생성되면 자연히 모니터링이 됩니다. Windows는 모든 파일 시스템을 모니터링하고 있으니깐요. USB 메모리에 CPU가 있는 구조는 특별한 것도 아니고, 모든 mp3 플레이어나 카메라 등 외장 스토리지가 있는 장비는 다 같은 맥락의 장비니깐요.