Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:获取递归目录出错

1楼
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只访问能访问的文件夹,不去访问被所绝的文件夹。或者是所有的文件夹都能访问。
请帮助修改!

2楼
有点蓝 发表于:2024/4/17 16:37:00
排除掉$RECYCLE.BIN,或者$开头的目录

判断隐藏文件,参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=79014&authorid=0&page=0&star=1
3楼
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功能还够完善。
4楼
kgdce 发表于:2024/4/17 16:57:00
    Dim ifo As New DirectoryInfo(ml)
    If ifo.Hidden = False Then
    end if
    这样也未必能解决问题。

5楼
有点蓝 发表于:2024/4/17 17:13:00
参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=141609&skin=0
6楼
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
错误所在事件:自定义函数,递归目录
详细错误信息:
调用的目标发生了异常。
尝试执行未经授权的操作。


7楼
有点蓝 发表于:2024/4/18 8:41:00
把foxtable设置为“使用管理员身份运行”
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.