avmir
11-04-2010, 17:23
Встала задача сохранить полностью веб-страницу (с картинками и форматированием).
Нашел в инете кучу однотипных советов как сохранить веб-страницу. Переписав все на C# получил следущее.
private void MHTFileSaveCreateOverWrite(string sPathToFile, string sFileName, string sURI)
{
CDO.Message iMessage = new CDO.Message();
iMessage.CreateMHTMLBody(sURI, CDO.CdoMHTMLFlags.cdoSuppressNone, "", "");
ADODB.Stream adodbstream = new ADODB.Stream();
adodbstream.Type = ADODB.StreamTypeEnum.adTypeText;
adodbstream.Charset = "windows-1251";
adodbstream = iMessage.GetStream();
adodbstream.SaveToFile((sPathToFile + sFileName), ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
adodbstream.Close();
}
Какова же была радость, когда открыл сохраненный на винте файл в IE - все получилось как нужно.
НО! Радость была недолгой. При отсутствии подключения к сети, страница оказалась без картинок и форматирования!
Пробовал в IE сохранить эту же страницу как .mht (на время подключив сеть) - все сохраняется на ура.
Уважаемые профессионалы, помогите пожалуйста любителю разобраться с этой проблемой.
Может есть другие пути реализации?
Нашел в инете кучу однотипных советов как сохранить веб-страницу. Переписав все на C# получил следущее.
private void MHTFileSaveCreateOverWrite(string sPathToFile, string sFileName, string sURI)
{
CDO.Message iMessage = new CDO.Message();
iMessage.CreateMHTMLBody(sURI, CDO.CdoMHTMLFlags.cdoSuppressNone, "", "");
ADODB.Stream adodbstream = new ADODB.Stream();
adodbstream.Type = ADODB.StreamTypeEnum.adTypeText;
adodbstream.Charset = "windows-1251";
adodbstream = iMessage.GetStream();
adodbstream.SaveToFile((sPathToFile + sFileName), ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
adodbstream.Close();
}
Какова же была радость, когда открыл сохраненный на винте файл в IE - все получилось как нужно.
НО! Радость была недолгой. При отсутствии подключения к сети, страница оказалась без картинок и форматирования!
Пробовал в IE сохранить эту же страницу как .mht (на время подключив сеть) - все сохраняется на ура.
Уважаемые профессионалы, помогите пожалуйста любителю разобраться с этой проблемой.
Может есть другие пути реализации?