我正在尝试根据创建日期将 csv 文件从一个位置移动到另一个位置。
但是我在不工作时使用的代码显示错误 sample.csv 已被另一个进程使用,我该如何解决这个问题?
这是错误消息“错误:System.Reflection.TargetInvocationException:调用目标已引发异常。---> System.IO.IOException:进程无法访问文件'C:\新文件夹\测试。 txt' 因为它正被另一个进程使用。在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite) at ST_b8571e8d94a54a80ab50a1e221d93b11.vbproj.ScriptMain .Main() --- 内部异常堆栈跟踪结束 --- System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] 参数,签名签名,System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化, Boolean skipVisibilityChecks) 处的 MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder、Object[] 参数、CultureInfo 文化)在 System.RuntimeType.InvokeMember(字符串名称、BindingFlags bindingFlags、Binder binder、Object 目标、Object[] providedArgs、ParameterModifier[] 修饰符、CultureInfo 文化、String[] namedParams)在 System Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 处的 .Type.InvokeMember(字符串名称,BindingFlags invokeAttr,Binder binder,Object 目标,Object[] args,CultureInfo 文化)RuntimeTypeHandle typeOwner) 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化, Boolean skipVisibilityChecks) 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数,CultureInfo 文化)在 System.RuntimeType.InvokeMember(字符串名称,BindingFlags bindingFlags,Binder binder,对象目标,Object[] providedArgs,ParameterModifier[] 修饰符,CultureInfo 文化,String[] namedParams)在 System.Type。 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 上的 InvokeMember(字符串名称,BindingFlags invokeAttr,Binding 绑定器,对象目标,Object[] args,CultureInfo 文化)RuntimeTypeHandle typeOwner) 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化, Boolean skipVisibilityChecks) 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数,CultureInfo 文化)在 System.RuntimeType.InvokeMember(字符串名称,BindingFlags bindingFlags,Binder binder,对象目标,Object[] providedArgs,ParameterModifier[] 修饰符,CultureInfo 文化,String[] namedParams)在 System.Type。 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 上的 InvokeMember(字符串名称,BindingFlags invokeAttr,Binding 绑定器,对象目标,Object[] args,CultureInfo 文化)System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化) 在 System.RuntimeType.InvokeMember( System.Type.InvokeMember 处的字符串名称、BindingFlags bindingFlags、BindingFlags、Object 目标、Object[] providedArgs、ParameterModifier[] 修饰符、CultureInfo 文化、String[] namedParams)(字符串名称、BindingFlags invokeAttr、Binder binder、Object 目标、Object [] args,CultureInfo 文化)在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()"System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化) 在 System.RuntimeType.InvokeMember( System.Type.InvokeMember 处的字符串名称、BindingFlags bindingFlags、BindingFlags、Object 目标、Object[] providedArgs、ParameterModifier[] 修饰符、CultureInfo 文化、String[] namedParams)(字符串名称、BindingFlags invokeAttr、Binder binder、Object 目标、Object [] args,CultureInfo 文化)在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()"System.RuntimeType.InvokeMember(字符串名称,BindingFlags bindingFlags,Binding 活页夹,对象目标,Object[] 提供的Args,ParameterModifier[] 修饰符,CultureInfo 文化,String[] namedParams ) 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 的 System.Type.InvokeMember(字符串名称,BindingFlags invokeAttr,Binder binder,Object 目标,Object[] args,CultureInfo 文化)System.RuntimeType.InvokeMember(字符串名称,BindingFlags bindingFlags,Binding 活页夹,对象目标,Object[] 提供的Args,ParameterModifier[] 修饰符,CultureInfo 文化,String[] namedParams ) 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 的 System.Type.InvokeMember(字符串名称,BindingFlags invokeAttr,Binder binder,Object 目标,Object[] args,CultureInfo 文化)Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 处的活页夹活页夹、对象目标、对象 [] 参数、CultureInfo 文化)Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 处的活页夹活页夹、对象目标、对象 [] 参数、CultureInfo 文化)
Public Sub Main()
Dim csvFilesToday = New List(Of String)
Dim sourceDir As String = "C:\New folder"
Dim backupDir As String = "C:\New folder (2)"
For Each csv In Directory.GetFiles(sourceDir, "*.csv", IO.SearchOption.AllDirectories)
If File.GetCreationTime(csv).Date = Date.Today Then
File.Copy(Path.Combine(sourceDir, csv), Path.Combine(backupDir, csv), True)
End If
Next
Dts.TaskResult = ScriptResults.Success
End Sub
End Class