gpt4 book ai didi

delphi - 如何锁定文件直到下次重新启动?

转载 作者:行者123 更新时间:2023-12-02 02:13:21 24 4
gpt4 key购买 nike

在delphi上我发现我可以像这样锁定文件:

aHandle     := CreateFile(PChar(aFileName),GENERIC_READ, 0, nil, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); // get the handle of the file
aFileSize := GetFileSize(aHandle,nil); //get the file size for use in the lockfile function
Win32Check(LockFile(aHandle,0,0,aFileSize,0)); //lock the file

但是有没有办法让文件保持锁定状态直到下次重新启动而无需让应用程序运行到那时

最佳答案

哇,我对此的用例很感兴趣!

如果您确实想保持文件锁定,您可能只需要保持应用程序运行即可。

但是,最好还是退一步讨论您要解决的实际问题,而不是提出解决方案。假设解决方案的人必须采取行动特定形式通常会因为不考虑所有选项而对自己不利。

如果您的目的是阻止人们修改文件,那么最好使用权限来执行此操作,因为无论程序是否在任何给定时间锁定文件,这都会起作用。

但是,如果您必须这样做,并且希望防止人们杀死您的应用程序来解锁文件,则可以使用 RobinHood/FriarTuck method使其更加“安全”。

让一个程序 (Robin) 锁定文件并启动第二个程序 (Tuck)。如果 Tuck 在任何时候退出,请让 Robin 立即重新启动它。

同样,Tuck 也会跟踪 Robin 的状态,一旦退出就会立即重新启动。

这绝不是完全安全,但它严重减少了可以修改文件的窗口,因为 Robin 和 Tuck 会互相保护。

它也是邪恶的,因此您可能需要在使用此功能之前确定您需要它。

关于delphi - 如何锁定文件直到下次重新启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15103372/

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