2011-03-30 2 views
1

빠른 질문이 있습니다. C# 응용 프로그램에서 SQLite 데이터베이스 파일을 사용하고 있습니다. 현재 암호로 보호되어 있지 않습니다. 그러나 그것이 나의 질문을위한 해결책으로 필요할 경우를 대비하여있을 것입니다.SQLite 파일 유효성 확인

질문은 내가 확인할 수있는 방법은 내 응용 프로그램과 연결된 SQLite 파일이 실제 SQLite 파일인지 여부입니다. 나는

File.Exists (파일 경로) 잘 작동 순간에

검사를을하고있는 중이 야. 하지만 누군가가 내 파일 확장명으로 파일을 만들 수 있으므로 유효한 Sqlite 파일인지 어떻게 확인할 수 있습니까?

미리 감사드립니다.

+1

"유효"란 말은 올바른 형식이며 읽기 쉽거나 데이터가 변경되지 않는다는 의미입니까? – Tim

+0

모든 사용자가 SQLite 파일 이름과 확장명을 가진 파일을 만들 수 있지만 내 프로그램이 SQLite 파일의 유효성을 검사하는 방법은 사용자가 만들었거나 이름을 바꾼 파일이 아닌 SQLite 파일입니다. –

답변

5

당신은 파일의 처음 16 바이트를 확인할 수 있습니다 :

모든 SQLite는 데이터베이스 파일을 시작하는 잘 알려진 16 바이트의 순서는 다음과 같습니다

에는 0x53 0x51 0x4c 0x69 따라 0x74 0x65 0x20에 0x66 0x6f 0x72을 이 0x61 0x6d 따라 0x74가 0x20 0x33을 0x00으로

암호 보호 자전거 가정이다

(http://www.sqlite.org/fileformat.html)에서 ction은 그 바이트도 엉망으로 만들지 않습니다.