gpt4 book ai didi

delphi - 我需要知道一种方法来确定文件是以独占模式还是以其他方式(读写等)打开?

转载 作者:行者123 更新时间:2023-12-03 18:30:01 24 4
gpt4 key购买 nike

我有一个备份应用程序,直到现在一直在使用 Zipmaster 组件,其中 Excel/Word 文件即使打开也会被压缩,但会跳过 PST 文件。
换句话说,被其他进程独占锁定的文件将被跳过。我的新压缩工具在遇到独占锁定的文件时因错误而停止。所以我想捕获并跳过专门打开的文件。 Delphi 的 Assignfile 等都为在 Excel/Word 或 PST 中打开的文件提供相同的消息。

我需要知道一种方法来确定文件是否被其他进程以独占模式或其他方式(读写等)打开?

请注意:我不能在某些驱动器上使用卷影复制,例如:Fat32

问候

最佳答案

这是我用的。。

function IsFileInUse(FileName: TFileName): Boolean;
var
HFileRes: HFILE;
begin
result := False;
if not FileExists(FileName) then exit;
HFileRes := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
result := (HFileRes = INVALID_HANDLE_VALUE);
if not result then CloseHandle(HFileRes);
end;

关于delphi - 我需要知道一种方法来确定文件是以独占模式还是以其他方式(读写等)打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52653082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com