当前位置: 代码迷 >> VB Dotnet >> vb file.copy 不能复制解决办法
  详细解决方案

vb file.copy 不能复制解决办法

热度:827   发布时间:2016-04-25 01:58:18.0
vb file.copy 不能复制
  
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If File.Exists("C:\Windows\System32\winevt\Logs\Security.evtx") Then
            File.Copy("C:\Windows\System32\winevt\Logs\Security.evtx", "C:\Log\", True)
        Else
            MessageBox.Show("bucunzai")
        End If
    End Sub

win7 64位系统,Security.evtx肯定存在,程序不能复制,如何解决?
------解决思路----------------------
应该是 Security.evtx 当前正在独占使用,不许复制不是很正常吗。
------解决思路----------------------
引用:
  
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If File.Exists("C:\Windows\System32\winevt\Logs\Security.evtx") Then
            File.Copy("C:\Windows\System32\winevt\Logs\Security.evtx", "C:\Log\", True)
        Else
            MessageBox.Show("bucunzai")
        End If
    End Sub

win7 64位系统,Security.evtx肯定存在,程序不能复制,如何解决?


“Security.evtx肯定存在,程序不能复制”具体报什么bug?你做了什么诊断工作?

------解决思路----------------------
调试的时候注意要是Debug  x64
因为X64和X86的SYSTEM32路径是不一样的:
C:\Windows\System32\winevt\Logs\Security.evtx
C:\Windows\syswow64\winevt\Logs\Security.evtx

如果是x86程序访问system32会被重定向,这时就需要用API来关闭重定向。

还有要确保应用程序权限是Administrator,可以对C盘进行读写

还有要确保路径C:\Log 已经存在。
------解决思路----------------------
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If File.Exists("C:\Windows\System32\winevt\Logs\Security.evtx") Then
            File.Copy("C:\Windows\System32\winevt\Logs\Security.evtx", "C:\Log\Security.evtx", True)
        Else
            MessageBox.Show("bucunzai")
        End If
    End Sub
这样????
  相关解决方案