检测目录是否是Delphi中的连接点

检测目录是否是Delphi中的连接点,第1张

概述我一直在谷歌搜索这个我可能会有一些脑云,因为它不工作。 我需要检测一个文件夹是否是一个连接点,所以我的递归文件搜索不会流失到无限循环。 我可以使用一个简单的功能 IsJunction(attr: dword): boolean; 其中attr是来自TWin32FindData的dwFileAttributes; 我似乎无法让它上​​班。谢谢! TWO32FindData的dwFileAttribu 我一直在谷歌搜索这个我可能会有一些脑云,因为它不工作。

我需要检测一个文件夹是否是一个连接点,所以我的递归文件搜索不会流失到无限循环。

我可以使用一个简单的功能

IsJunction(attr: DWord): boolean;

其中attr是来自TWin32FindData的DWfileAttributes;

我似乎无法让它上​​班。谢谢!

解决方法 TWO32FindData的DWfileAttributes没有该信息,您必须查看DWReserved0字段。见 documentation。
function IsJunction(const filename: string): Boolean;//  IO_REPARSE_TAG_MOUNT_POINT = $A0000003;var  FindHandle: THandle;  FindData: TWin32FindData;begin  Result := False;  FindHandle := FindFirstfile(PChar(filename),FindData);  if FindHandle <> INVALID_HANDLE_VALUE then begin    Result := (Bool(FindData.DWfileAttributes and file_ATTRIBUTE_REPARSE_POINT))              and Bool(FindData.DWReserved0 and 000000) // MS bit              and Bool(FindData.DWReserved0 and 000000) // name surrogate bit              and (LoWord(FindData.DWReserved0) = 3); // mount point value    winAPI.windows.FindClose(FindHandle);  end else    RaiseLastOSError;end;
总结

以上是内存溢出为你收集整理的检测目录是否是Delphi中的连接点全部内容,希望文章能够帮你解决检测目录是否是Delphi中的连接点所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1280198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存