鉴于以下情况:我有一个连接到SMB共享的Windows客户端。我想以递归的方式潜入该共享中的目录以对文件执行某些操作(如果超出某个大小,请设想为它们计算sha1哈希值)。
我通常会这样做:递归dirInfo.EnumerateDirectories()
捕获一些特殊情况,例如未经授权的访问,并将文件排队到操作员线程(然后对sha1进行计算)。
挑战:递归符号链接。我的测试场景非常简单
me@smb:~$ ls -l /home/me/tmp/recursionStartsHere
lrwxrwxrwx recursion -> /home/me/tmp/recursionStartsHere
我尝试过的(除了googlin)是使用dirInfo.Attributes.HasFlag(FlagAttributes.ReparsePoint)
来检测符号链接,当然这些符号链接不起作用。蛮力方法似乎使用内容中的累积校验和来索引每个目录 - 这可能甚至不是无冲突的。
由于我现在没有实际的想法,如何告诉某个目录(仅)是一个符号链接?当然,我更喜欢独立的平台,所以我的代码工作原理相同远程SMB以及本地NTFS驱动器。
答案 0 :(得分:1)