以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 获取递归目录出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191455) |
-- 作者:kgdce -- 发布时间:2024/4/17 16:20:00 -- 获取递归目录出错 1.此为递归目录函数代码 Dim path As String = args(0) \'目录路径 Dim ls As List(Of String) = args(1) \'ls 为目录集合 For Each ml As String In FileSys.GetDirectories(path) ls.add(ml) Next For Each p As String In FileSys.GetDirectories(path) Functions.Execute("递归目录", p, ls) Next 2.调用此函数 dim p as string = "D:\\" dim ls as new list(of string) Functions.Execute("递归目录", p, ls) 3.出现报错 .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.6.12.1 错误所在事件:自定义函数,递归目录 详细错误信息: 调用的目标发生了异常。 对路径“D:\\$RECYCLE.BIN\\S-1-5-18”的访问被拒绝。 分析是权限问题,如何让FileSys.GetDirectories只访问能访问的文件夹,不去访问被所绝的文件夹。或者是所有的文件夹都能访问。 请帮助修改! |
-- 作者:有点蓝 -- 发布时间:2024/4/17 16:37:00 -- 排除掉$RECYCLE.BIN,或者$开头的目录 |
-- 作者:kgdce -- 发布时间:2024/4/17 16:49:00 -- .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.6.12.1 错误所在事件:自定义函数,递归目录 详细错误信息: 调用的目标发生了异常。 对路径“D:\\Config.Msi”的访问被拒绝。对路径“D:\\Microsoft SQL Server\\MSAS11.MSSQLSERVER\\OLAP\\Backup”的访问被拒绝。 对路径“D:\\Microsoft SQL Server\\MSSQL11.MSSQLSERVER\\MSSQL\\FTData”的访问被拒绝。对路径“D:\\sqldata\\MSAS10_50.MSSQLSERVER\\OLAP\\Backup”的访问被拒绝。 对路径“D:\\sqldata\\MSAS10_50.MSSQLSERVER\\OLAP\\Config”的访问被拒绝。 不仅仅是 含$ 的目录出错,还有其他的很多目录也会出错,均是访问被拒绝。估计和读取权限密切相关,这个FileSys.GetDirectories功能还够完善。
|
-- 作者:kgdce -- 发布时间:2024/4/17 16:57:00 -- Dim ifo As New DirectoryInfo(ml) If ifo.Hidden = False Then end if 这样也未必能解决问题。 |
-- 作者:有点蓝 -- 发布时间:2024/4/17 17:13:00 -- 参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=141609&skin=0 |
-- 作者:kgdce -- 发布时间:2024/4/17 17:53:00 -- Dim path As String = args(0) \'目录路径 Dim ls As List(Of String) = args(1) \'ls 为目录集合 For Each ml As String In FileSys.GetDirectories(path) If ml.Contains("$") Then Else Dim ml_1 As New System.Security.AccessControl.DirectorySecurity(ml, System.Security.AccessControl.AccessControlSections.Access) If ml_1.AreAccessRulesProtected = False Then ls.add(ml) End If End If Next For Each p As String In FileSys.GetDirectories(path) Dim s As New System.Security.AccessControl.DirectorySecurity(p, System.Security.AccessControl.AccessControlSections.Access) If s.AreAccessRulesProtected = False Then Functions.Execute("递归目录", p, ls) End If Next 修改代码后执行,出现如下错误,如何解决?请求帮助,谢谢! .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.6.12.1 错误所在事件:自定义函数,递归目录 详细错误信息: 调用的目标发生了异常。 尝试执行未经授权的操作。 |
-- 作者:有点蓝 -- 发布时间:2024/4/18 8:41:00 -- 把foxtable设置为“使用管理员身份运行” |