代码:
var nTime: TFileTime;
nStorage: IStorage;
begin
StgOpenDocFile(....nStorage);
//打开复合文档
nTime.dwlow := 11;
nTime.dwHi := 22;
//时间
nStorage.SetElementTimes(nil, nTime, nTime, nTime);
//设置Root Storage的访问,修改,创建时间
end;问题是:当SetElementTimes操作成功后,创建时间被改为(low:11;Hi:22),说明操作是成功的。但修改时间和访问时间没有被改动,是不是因为SetElementTimes本身是“写”操作的缘故。
var nTime: TFileTime;
nStorage: IStorage;
begin
StgOpenDocFile(....nStorage);
//打开复合文档
nTime.dwlow := 11;
nTime.dwHi := 22;
//时间
nStorage.SetElementTimes(nil, nTime, nTime, nTime);
//设置Root Storage的访问,修改,创建时间
end;问题是:当SetElementTimes操作成功后,创建时间被改为(low:11;Hi:22),说明操作是成功的。但修改时间和访问时间没有被改动,是不是因为SetElementTimes本身是“写”操作的缘故。
解决方案 »
- dephin跟VS一样是工具吗
- Delphi里用来激活可执行程序的函数是什么?
- RAVE汉化
- 求一sql语句!
- delphi 中异常问题?
- QuickRep中放置QRExpr控件,在编辑统计函数时可它就是找不到我放在 DataModule 中的Query---------------------------------------------
- 用過dxDBGrid和dxComponentPrinter的朋友請進,如何用這二個控件進行打印時打印出總匯總和按頁匯總
- 作业完成 :)
- 小弟在线急求,用DELPHI下文件夹覆盖拷贝的问题。100分
- 請教有關ActionList的用法
- 如何将鼠标键盘的动作存储下来!!
- 如何分别获取声音及视频的波形图,并且可以编辑这边波形图?
上面的问题我已经解决了,使用StgSetTime可以实现修改根时间戳的功能。再问:
function WriteString(nStr: string): boolean;
begin
//在root Storage下用IStream写入一个字符串
end;var nMD5:string;
begin
WriteString('aaa');
nMD5 := MD5File('Text.Doc');
//对文件作摘要 WriteString('aaa');
nMD5 := MD5File('Text.Doc');
//对文件作摘要,重复了一次
end;问题是:向Text.Doc写入同一个字符串'aaa'两次,但校验的MD5值确不一样。开始我以为是Root Storage时间戳改变的缘故,后来证实跟时间戳没有关系的。但两次写入,差异只有四个字节。