首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用vb.net将txt文件从一个文件夹复制到另一个文件夹时出现错误

在使用vb.net将txt文件从一个文件夹复制到另一个文件夹时出现错误
EN

Stack Overflow用户
提问于 2019-03-01 15:32:54
回答 1查看 36关注 0票数 0

我试图将文件从一个文件夹复制到另一个文件夹,错误是它正被另一个文件夹使用,它无法打开任何where.These都是txt文件。

错误:该进程无法访问文件'D:\Vimal\test1\test2.txt‘,因为另一个进程正在使用该文件。

代码语言:javascript
复制
Sub MoveFile()
    Dim _sSourcePath As String = "D:\Vimal\test1"
    Dim _sDesPath As String = "D:\Vimal\test2"
    Dim _FilelstSource As New DirectoryInfo(_sSourcePath)
    Dim _FilelstDest As New DirectoryInfo(_sDesPath)
    Dim list1 = _FilelstSource.GetFiles("*.*", SearchOption.AllDirectories)
    Dim list2 = _FilelstDest.GetFiles("*.*", SearchOption.AllDirectories)
    Dim _sTempstr As String = String.Empty
    _sTempstr = "ProcessDldFiles"
    Dim myFileCompare As New FileCompare

    Try

        If list1.Count > 0 Then
            Dim _queryDiff = list1.Except(list2, myFileCompare)
            If _queryDiff.ToList.Count > 0 Then
                For Each filename As FileInfo In _queryDiff
                    ' File.Copy(filename.FullName, filename.FullName.Replace("BAMDailyFile", _sTempstr), True)
                    File.Copy(filename.FullName, Path.Combine(_sDesPath, filename.Name), True)
                Next
                ' WriteDesLog("Total No. old cases file " & Now.Date.ToString("dd/MM/yyyy") & ":" & _queryDiff.ToList.Count())
            Else
                ' WriteDesLog("No Case to Download due to difference " & Now.Date.ToString("MM/dd/yyyy"))
            End If
        End If
    Catch ex As Exception
        ' InsertErrorLog("CompareFilesToProcess", "", ex.ToString(), Date.Now.ToString())
    End Try
End Sub

Public Class FileCompare
    Implements IEqualityComparer(Of FileInfo)

Public Function Equals1(ByVal x As FileInfo, ByVal y As FileInfo) As Boolean Implements IEqualityComparer(Of FileInfo).Equals

        If (x.Name = y.Name) And (x.Length = y.Length) Then
            Return True
        Else
            Return False
        End If
    End Function

Public Function GetHashCode1(ByVal fi As FileInfo) As Integer Implements IEqualityComparer(Of FileInfo).GetHashCode
        Dim s As String = fi.Name & fi.Length
        Return s.GetHashCode()
    End Function
End Class
EN

回答 1

Stack Overflow用户

发布于 2019-03-01 15:59:38

需要更改File.Copy的行

File.Copy(filename.FullName,Path.Combine(_sDesPath,filename.Name),True)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54939916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档