2011-03-17 3 views
2

나는 (사용자 선호도에 따라) 선택한 폴더의 파일을 모니터하고 처리하는 멀티 스레드 응용 프로그램을 디자인합니다.폴더/파일 저장 방법 트리

파일에 정보를 저장하는 가장 좋은 방법은 무엇입니까? (예 : 사용자 xxx 디렉토리 추가, 디렉토리 위로 이동하여 모든 파일 및 하위 디렉토리를 내 애플리케이션에 추가해야 함)

내 자신의 트리 구조 또는 SQLite를 고려하고있었습니다. 데이터베이스 래퍼 잠금이의 읽고 당신을 위해 (데이터베이스 내에서) 글을 처리 할로

+0

그것은 등 환경, 크기 및 프로젝트의 유형, 나는 멀티 스레딩과 SQLite는 사용에 제한이 있다는 것을 읽을 – Hossein

답변

2

SQLite는

덕분에 멋진 솔루션입니다. 파일의 읽기/쓰기 잠금으로 열을 사용할 수도 있습니다.

+0

에 따라 달라집니다. 나는 다른 방법으로 주위에 stear? – user653952

+0

@ user653952 : 두 개의 스레드가 동시에 동일한 데이터베이스 레코드에서 작동하지 않을 수 있지만 어쨌든이 작업을 수행하는 것은 매우 어려울 것입니다. 경주 조건 등을주의해야하지만, 어쨌든 이것을 조심해야합니다. 어떤 한계를 들어 보셨습니까? – theheadofabroom

0

는 등 사용자 환경, 크기 및 프로젝트의 유형,

가장 쉬운 방법은 피클을 사용하는 것입니다에 따라 달라집니다.

예를 들어, 데이터는이 형식의 튜플에 있습니다

actions=(
    {time=..., user=..., action="adddir", name="new folder"}, 
    {time=..., user=..., action="accessfile", name="/etc/passwords"} 
) 

#save the data: 
f = open('somefile', 'w'); 
pickle.dump(actions, f) 
f.close() 

#laod them: 
f = open('somefile', 'r'); 
actions = pickle.load(f) 
f.close() 
+0

그러나 피클 파일의 잠금 및 차단을 직접 처리해야합니다. 여러 개의 프로세스가 동일한 pickled 파일에서 읽고 쓰고 자하는 빈도와 읽기/쓰기 루프를 통해 부분적으로 변경된 사항을 알고 자하는지 여부에 따라 다릅니다. – theheadofabroom