2010-07-07 3 views
3

데이터베이스에 바이트 []로 저장된 Word 파일을 여는 가장 좋은 방법은 무엇입니까?실제로 파일로 저장하지 않고 바이트 []를 파일로 열기

엄밀히 말해서 CD로 실행되는 응용 프로그램의 Word 데이터베이스 (2003 년 이후)에 Access 데이터베이스에 일부 문서를 저장해야합니다. 불행히도 그들은 데이터베이스에 있어야하고 폴더에 느슨하게 저장할 수 없습니다. 난 그들을 OLE 개체로 저장 해요, 그리고 읽을 수 있고 바이트 []로 잘 써주세요.

그러나 Word에서 이러한 문서를 다시 열 수있는 가장 좋은 방법을 모르겠습니다. 지금은 FileStream을 사용하여 어딘가에서 파일을 다시 만든 다음 열기 위해 System.Diagnostics.Process.Start(filename)을 쐈습니다. 이것은 때로는 펑키 보안 규칙을 가질 수있는 정부 컴퓨터에서 사용되기 때문에 최선의 방법인지는 잘 모릅니다.

하드 드라이브에 저장된 중간 파일을 사용하지 않고 이전에 바이트 []로 저장된 파일을 열 수 있습니까? 적어도 Word 2003을 사용하게 될 것이므로 Word interop을 사용할 수 있습니다.

입력 해 주셔서 감사합니다.

+1

다른 옵션은 없습니다. 당신이 바로하고 있습니다. –

+0

질문 : 열린 파일이 편집 용입니까, 아니면 읽기 전용입니까? 전자의 경우 사용자의 보안 문제가 사용자에게 낭비 될 것입니다. 후자의 경우, 정말로 Word에서 열어 볼 필요가 있습니까? 단순히 워드 문서를 표시하는 경우 디스크에 이식 가능한 오픈 오피스를 배치하고이 작업에 맞게 수정할 수 있습니다.하지만 얼마나 많은 작업이 될지 잘 모르겠습니다. –

+0

그들은 읽기 전용이며 컴퓨터가 .doc/.docx 파일을 열 때마다 열어야합니다. 필자는 휴대용 오픈 오피스 같은 독자를 포함시키는 것이 파일을 여는 사람들에게는별로 인기가 없을 것이라고 생각합니다. –

답변

6

적어도 RAMDisk 나 이와 유사한 파일에 저장하지 않고 Word 파일을 메모리에 공급할 수 있을지 의심 스럽습니다.

Word를 사용하여 파일을 열기 전에 시스템 임시 폴더 나 GetTempFile() 메서드를 사용하여 바이트 배열을 작성한 다음 임시 파일을 정리하는 것이 좋습니다.

string fullPathToATempFile = System.IO.Path.GetTempFileName(); 
// or 
    string tempDirPath = System.IO.Path.GetTempPath(); 
관련 문제