2012-11-30 3 views
2

나는 프로그래머 관점에서 C#이나 Java로 궁금해했다. 예를 들어 FTP처럼 행동하기 위해 운영 체제 내의 폴더를 조작하는 것이 얼마나 힘든지? 나는 몇 년 전 보관 용 들어 있기 때문에Dropbox와 디자인과 같은 "Folder"

image http://www.jacks-log.de/wp-content/uploads/2011/02/Dropbox-Wurmloch-1.png

, 난 항상이 일에 무슨 참여 궁금했는데?

+1

Java NIO 기능 [변경 사항에 대한 디렉토리보기] (http://docs.oracle.com/javase/tutorial/essential/io/notification.html) – jlordo

답변

2

특히 Dropbox에 관해 말하면서 그들은 Windows 사용자 모드 API에서 제공하는 메커니즘을 사용하여 일반 폴더 만 모니터링합니다.

커널 모드 드라이버를 사용하면 훨씬 강력하고 재미있는 일을 할 수 있습니다.

먼저 할 수있는 작업은 가상 디스크를 만들어 폴더에 매핑하는 것입니다. 이 방법으로 귀하의 코드 (제품의 도움으로 커널 모드 또는 사용자 모드)가이 폴더에있는 파일에 대한 모든 OS 요청을 처리 할 수있게됩니다. 폴더는 디스크에 존재하지 않지만 가상 디스크입니다. 원격 서버에서 데이터를 선택하여 원격 서버 등에 기록 할 수 있습니다. 특히 원격 SFTP 서버를 폴더에 매핑 할 수 있습니다 (FTP는 부분 업로드를 지원하지 않기 때문에 좀 더 복잡합니다).). 일부 클라우드 공급자는 내가 설명한 바대로 클라우드 서비스의 "게이트"인 가상 디스크 또는 가상 폴더를 제공하고 이러한 가상 폴더 또는 디스크에서 데이터를 읽거나 쓸 때 데이터가 클라우드로/클라우드로 전송됩니다 섬기는 사람.

다음은 파일 시스템 필터 드라이버의 도움으로 실제 폴더를 가질 수 있지만 파일 내용을 동적으로 제공 할 수 있다는 것입니다. 이것은 몇몇 폴더 암호화 기가 (실제 디스크에 파일을 쓸 때 파일 데이터를 암호화하는 방식이며,이 암호화 기가 활성화되지 않은 상태에서이 폴더의 파일에서 암호화 된 "정크"만 읽음).

이제 파일 시스템 필터 드라이버를 사용하면 폴더에 액세스 할 수있는 사람과 방법을 제어 할 수 있습니다. 즉, 폴더 내용에 대한 액세스를 미세하게 제어 할 수 있습니다 (암호화와 결합하면 편리한 데이터 보호 메커니즘을 얻을 수 있습니다).

관련 문제