Открытие байта [] в виде файла без фактического сохранения его в виде файла - PullRequest
3 голосов
/ 08 июля 2010

Каков наилучший способ открыть файл Word, который был сохранен в виде байта [] в базе данных?

Мне нужно хранить некоторые документы в базе данных Access - файлы Word, 2003 и выше - вкл.приложение, которое строго запускается с компакт-диска.К сожалению, они должны быть в базе данных и не могут храниться свободно в папках.Я храню их как объект OLE, и я могу читать и записывать их как байт [].

Однако я не знаю, как лучше открыть эти документы в Word.Прямо сейчас я использую FileStream для воссоздания файла где-то, а затем снимаю System.Diagnostics.Process.Start(filename), чтобы открыть его.Это будет использоваться на правительственных компьютерах, которые иногда могут иметь некоторые прикольные правила безопасности, поэтому я не знаю, является ли это лучшим способом.

Можно ли открыть файл, ранее сохраненный как байт [] без использования какого-либо промежуточного файла, сохраненного на жестком диске?Я знаю, что у них по крайней мере будет Word 2003, поэтому я открыт для использования взаимодействия Word.

Спасибо за любой вклад!

1 Ответ

6 голосов
/ 08 июля 2010

Я сомневаюсь, что вы сможете загружать Word файл в память, не сохраняя его хотя бы на RAMDisk или что-то в этом роде.

Почему бы не использовать системную временную папку или GetTempFile () метод записи массива байтов в файл непосредственно перед открытием его с помощью Word, а затем очистка временных файлов, когда вы закончите?

  string fullPathToATempFile = System.IO.Path.GetTempFileName();
// or
  string tempDirPath = System.IO.Path.GetTempPath();
...