Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Как при использовании IStorage удалить из хранилища бинарник   Найти похожие ветки 

 
Alisher   (2005-08-24 07:41) [0]

Кагда удаляю бинарные данные из хранилища, они удаляются, но файл хранилища остается таких же размеров. Выходит, что он никогда не уменьшается. Кто знает, подскажите.


 
Leonid Troyanovsky ©   (2005-08-24 11:00) [1]


> Alisher   (24.08.05 07:41)  
> Кагда удаляю бинарные данные из хранилища, они удаляются,
> но файл хранилища остается таких же размеров. Выходит, что
> он никогда не уменьшается. Кто знает, подскажите.


IStream.SetSize ?

--
Regards, LVT.


 
Rouse_ ©   (2005-08-24 12:17) [2]

Все верно, сжимать вот так:

class function TGSCustomStorage.ClassSupport(const AFileName: String;
 Change: Boolean): HRESULT;
var
 Src, Dest: IStorage;
begin
 Result := S_FALSE;
 if not FileExists(AFileName) then Exit;
 Result := StgOpenStorage(StringToOleStr(AFileName), nil,
   STGM_READ or STGM_SHARE_EXCLUSIVE, nil, 0, Src);
 if Result = S_OK then
 try
   Result :=  StgCreateDocfile(StringToOleStr(String(AFileName) + "~"),
     STGM_READWRITE or STGM_SHARE_EXCLUSIVE or STGM_CREATE, 0, Dest);
   if Result = S_OK then
   try
     Result := Src.CopyTo(0, nil, nil, Dest);
   finally
     Dest := nil;
   end;
 finally
   Src := nil;
   if Change then
   begin
     if Result = S_OK then
       if not DeleteFile(AFileName) then
         Result := S_FALSE
       else
         RenameFile(AFileName + "~", AFileName);
   end
   else
   begin
     if Result = S_OK then
       if not DeleteFile(AFileName + "~") then
         Result := S_FALSE
   end;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.051 c
2-1128666945
Wolferio
2005-10-07 10:35
2005.10.30
Печать на матричные принтера


1-1128200616
NightLord
2005-10-02 01:03
2005.10.30
дефрагментация


14-1128680608
__DATA__
2005-10-07 14:23
2005.10.30
Для чего исползуется протокол NetBios?


2-1127728356
SMATMP
2005-09-26 13:52
2005.10.30
Bitmap.PixelFormat


14-1129016372
KilkennyCat
2005-10-11 11:39
2005.10.30
У кого-нибудь квартира в Петербурге в аренду есть?