dot Net Web项目后台代码删除

自编小工具之一

说明:这些自编小工具是本人在学习开发和管理期间,同时为了工作需要而自行编写的小工具。将它们贴上blog作为学习或工作过程的记录。

        使用dot Net开发Web项目,当项目要部署或发布时,为了施行软件保护----防止后台代码被查看,项目或解决方案被修改、盗用。则需要将后台代码、项目文件、解决方案文件等一切无关最终用户使用的文件统一删除。

        为了实施这一保护,可使用配置工具,例如VSS。如果不想应用这些工具,也可以自己做一个简单的工具来实现这种删除备份功能。

       功能描述:备份整个项目内容、删除某些需要保护的文件

       程序描述:选择某个项目目录,获取该目录路径并在该目录的根目录下创建bak文件夹存放整个项目内容。
                           遍利整个项目目录,边备份边删除指定类型的文件。

       源代码:

Public   Class Form1
    
Inherits System.Windows.Forms.Form

Windows 窗体设计器生成的代码

    
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        lbl.Text 
= ""
        TextBox1.Text 
= ""
        dp 
= ""
        copyCnt(
0= 0
        copyCnt(
1= 0
        FolderShow.Reset()
        FolderShow.ShowNewFolderButton 
= False
        FolderShow.ShowDialog()

        lbl.Text 
= FolderShow.SelectedPath.ToString

        
If lbl.Text.Length > 0 Then'组合bak文件夹

            dp 
= lbl.Text.Substring(03& "bak" & lbl.Text.Substring(3, lbl.Text.Length - 3)
            
Try
                FileSystem.MkDir(dp)
            
Catch ex As Exception

            
End Try

            
Dim oCols As New Collection
            
Dim i As Integer

            FindTaget(FolderShow.SelectedPath.ToString, oCols)

            
For i = 1 To oCols.Count
                TextBox1.Text 
= TextBox1.Text & oCols.Item(i) & vbTab
            
Next

            TextBox1.Text 
= TextBox1.Text & vbCrLf & "共删除文件个数:" & oCols.Count.ToString
            TextBox1.Text 
= TextBox1.Text & vbCrLf & "共拷贝文件个数:" & copyCnt(1).ToString
            TextBox1.Text 
= TextBox1.Text & vbCrLf & "共拷贝文件夹个数:" & copyCnt(0).ToString

        
End If


    
End Sub


    
'遍历列出所有目录
    Private Function FindTaget(ByVal sTmp As StringByVal list As Collection)
        
Dim myPath, myName As String
        
Dim j, i As Integer
        
Dim sPath() As String
        
Dim sStr() As String

        myPath 
= sTmp

        
If myPath.Substring(myPath.Length - 11<> "" Then
            myPath 
= myPath & ""
        
End If

        myName 
= Dir(myPath, FileAttribute.Directory)  ' 找寻第一项。
        j = 0

        
While Len(myName) > 0

            
If myName <> "." And myName <> ".." Then


                
' 使用位比较来确定 MyName 代表一目录。
                If (GetAttr(myPath & myName) And FileAttribute.Directory) = FileAttribute.Directory Then
                    
ReDim Preserve sPath(j)
                    sPath(j) 
= myName
                    j 
= j + 1 '目录计数器加1
                    '拷贝文件夹
                    Clone(myPath, myName, "dir")
                
Else
                    
'先做文件拷贝
                    Clone(myPath, myName, "file")
                    
'判断是否删除
                    sStr = Split(myName, ".")
                    
If LCase(sStr(sStr.Length - 1)) = "vb" Or LCase(sStr(sStr.Length - 1)) = "cs" Or LCase(sStr(sStr.Length - 1)) = "vbproj" Then

                        list.Add(myName) 
'记录被
                        FileSystem.Kill(myPath & myName) '删除指定后缀名的文件
                    End If
                
End If
            
End If
            myName 
= Dir()
        
End While

        
If j > 0 Then '递归遍历子目录
            For i = 0 To UBound(sPath)
                
Call FindTaget(myPath & sPath(i) & "", list)
            
Next
        
End If

        
Erase sPath

    
End Function


    
Private Function Clone(ByVal path As StringByVal name As StringByVal Ftype As String)
        
Dim substr, fullpath As String
        
Dim icnt As Integer

        fullpath 
= path & name
        icnt 
= dp.Length - 4
        substr 
= fullpath.Substring(icnt, fullpath.Length - icnt)'获取项目目录中的子目录路径


        
If Ftype = "dir" Then
            
'如果是文件夹,则新建文件夹
            Try

                FileSystem.MkDir(dp 
& substr)
                copyCnt(
0= copyCnt(0+ 1
            
Catch ex As Exception

            
End Try

        
ElseIf Ftype = "file" Then
            
'否则,复制文件
            Try

                FileSystem.FileCopy(fullpath, dp 
& substr)
                copyCnt(
1= copyCnt(1+ 1
            
Catch ex As Exception

            
End Try

        
End If

    
End Function


End Class

 删除文件的时候加个判断,如果是只读文件,则将其属性重设。

        If (GetAttr(pathName) And FileAttribute.ReadOnly) = FileAttribute.ReadOnly Then
            FileSystem.SetAttr(pathName, FileAttribute.Normal)
        End If

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值