Foxtable(狐表)用户栏目专家坐堂 → 如何删除文件夹多余的文件?


  共有2607人关注过本帖树形打印复制链接

主题:如何删除文件夹多余的文件?

帅哥哟,离线,有人找我吗?
lyfxybc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1290 积分:9826 威望:0 精华:0 注册:2012/9/19 21:13:00
如何删除文件夹多余的文件?  发帖心情 Post By:2014/10/26 9:22:00 [只看该作者]

如何删除文件夹多余的文件?

假设有表A中有一列,每行单元格存放文件夹的文件名,当文件夹文件名和单元格文件名不一样时,删除文件夹中单元格没有的文件。


图片点击可在新窗口打开查看此主题相关图片如下:28.bmp
图片点击可在新窗口打开查看

 
图片点击可在新窗口打开查看此主题相关图片如下:29.bmp
图片点击可在新窗口打开查看

文件夹中5.doc在单元格中没有则删除。用代码如何写(按钮中)

[此贴子已经被作者于2014-10-26 9:23:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lyfxybc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1290 积分:9826 威望:0 精华:0 注册:2012/9/19 21:13:00
  发帖心情 Post By:2014/11/2 21:21:00 [只看该作者]

 请问下列代码为何不能完成上述要求  


BeforeDeleteDataRow

   
      If FileSys.FileExists(ProjectPath & "Bfbak\" & e.DataRow("第一列")) Then
           FileSys.DeleteFile(ProjectPath & "Bfbak\" & e.DataRow("第一列"))
      Else
          For Each File As String In FileSys.GetFiles(ProjectPath & "Bfbak\")
             If FileSys.FileExists(file) Then
                   If  file <> ProjectPath & "Bfbak\" & e.DataRow("第一列")  
                         FileSys.DeleteFile(file)
                   End If
             End If
         Next
      End If

要求:
删除第四行3.txt的同时删除项目文件夹ProjectPath & "Bfbak\的3.txt,同时判断项目文件夹ProjectPath & "Bfbak\下若果文件和表中第一列文件名不同的够删除掉。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


[此贴子已经被作者于2014-11-2 21:25:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/2 21:24:00 [只看该作者]

删除多余文件,参考

 

For Each File As String In FileSys.GetFiles(ProjectPath & "Bfbak\")
    Dim fdr As DataRow = e.DataTable.Find("第一列 = '" & FileSys.GetName(file) & "'")
    If fdr Is Nothing Then
        FileSys.DeleteFile(file)
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
lyfxybc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1290 积分:9826 威望:0 精华:0 注册:2012/9/19 21:13:00
  发帖心情 Post By:2014/11/2 21:29:00 [只看该作者]

非常感谢,达到了我的要求,再次感谢

 回到顶部
帅哥哟,离线,有人找我吗?
wusim
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2016/5/17 21:42:00 [只看该作者]

请问怎样优化以下代码, 当删除行时,一起删除四个文件夹下与出厂编号相同的文。
Dim f As String = ProjectPath & "资料备份目录\质量证明书\" & Tables("基本信息表").Current("出厂编号") &  ".xls"
If FileSys.FileExists(f) Then
For Each File As String In FileSys.GetFiles(ProjectPath & "资料备份目录\质量证明书\")
    Dim fdr As DataRow = e.DataTable.Find("出厂编号 = '" & FileSys.GetName(file) & "'")
    If fdr Is Nothing Then
        FileSys.DeleteFile(file)
    End If
Next
End If
Dim f1 As String = ProjectPath & "资料备份目录\注册登记表\" & Tables("基本信息表").Current("出厂编号") &  ".xls"
If FileSys.FileExists(f1) Then
For Each File As String In FileSys.GetFiles(ProjectPath & "资料备份目录\注册登记表\")
    Dim fdr As DataRow = e.DataTable.Find("出厂编号 = '" & FileSys.GetName(file) & "'")
    If fdr Is Nothing Then
        FileSys.DeleteFile(file)
    End If
Next
End If
Dim f2 As String = ProjectPath & "资料备份目录\自检记录\" & Tables("基本信息表").Current("出厂编号") &  ".xls"
If FileSys.FileExists(f2) Then
For Each File As String In FileSys.GetFiles(ProjectPath & "资料备份目录\自检记录\")
    Dim fdr As DataRow = e.DataTable.Find("出厂编号 = '" & FileSys.GetName(file) & "'")
    If fdr Is Nothing Then
        FileSys.DeleteFile(file)
    End If
Next
End If
Dim f3 As String = ProjectPath & "资料备份目录\告知书\" & Tables("基本信息表").Current("出厂编号") &  ".xls"
If FileSys.FileExists(f3) Then
For Each File As String In FileSys.GetFiles(ProjectPath & "资料备份目录\告知书\")
    Dim fdr As DataRow = e.DataTable.Find("出厂编号 = '" & FileSys.GetName(file) & "'")
    If fdr Is Nothing Then
        FileSys.DeleteFile(file)
    End If
Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/17 22:09:00 [只看该作者]

Dim cs() As String = {"质量证明书", "注册登记表", "自检记录", "告知书"}

For Each c As String In cs
    Dim f As String = ProjectPath & "资料备份目录\" & c & "\" & Tables("基本信息表").Current("出厂编号") &  ".xls"
    If FileSys.FileExists(f) Then
        For Each File As String In FileSys.GetFiles(ProjectPath & "资料备份目录\" & c & "\")
            Dim fdr As DataRow = e.DataTable.Find("出厂编号 = '" & FileSys.GetName(file) & "'")
            If fdr Is Nothing Then
                FileSys.DeleteFile(file)
            End If
        Next
    End If
Next


 回到顶部