Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何确定文件复制何时结束?_C#_Copy_Filesystems_.net - Fatal编程技术网

C# 如何确定文件复制何时结束?

C# 如何确定文件复制何时结束?,c#,copy,filesystems,.net,C#,Copy,Filesystems,.net,如何确定文件复制何时结束 我用的是c# 编辑:我们通过网络将文件从一台电脑复制到另一台电脑。 我的任务是监视目录,并在文件复制到目录后执行一些操作。定期检查目录大小。 无论如何,我建议您使用CopyFileEx,它有一个进度功能()如果您使用的是File.Copy(),那么在实际复制文件之后,此操作就完成了。我最近遇到了类似的情况。 我会在文件上使用文件的“打开写入”属性来查看是否可以写入该文件: 例如 FileStream fs=f.OpenWrite() 如果上述语句有效,则文件未被使用,即

如何确定文件复制何时结束 我用的是c#

编辑:我们通过网络将文件从一台电脑复制到另一台电脑。
我的任务是监视目录,并在文件复制到目录后执行一些操作。

定期检查目录大小。
无论如何,我建议您使用
CopyFileEx
,它有一个进度功能()

如果您使用的是
File.Copy()
,那么在实际复制文件之后,此操作就完成了。

我最近遇到了类似的情况。 我会在文件上使用文件的“打开写入”属性来查看是否可以写入该文件: 例如 FileStream fs=f.OpenWrite()

如果上述语句有效,则文件未被使用,即复制完毕。

尝试查看

一些常见情况,例如 复制或移动文件或目录, 不直接对应于 事件,但这些事件确实会导致 要提出的事件。当你复制一个 文件或目录,
系统将引发
在要删除的目录中创建事件
复制了哪个文件


到目前为止你有什么代码?为什么你认为文件没有被完全复制?是的。文件复制是一个阻塞操作,或者?System.IO.File.copy()不是一直阻塞到完成吗?我认为
File.IO.copy
是同步的…我以前考虑过这个想法。当我应该停止检查时。当大小等于原始文件的大小时。我应该在之前告诉你们,我正在通过网络将文件从一台电脑复制到另一台电脑。我不是从代码中复制文件。即使如此,您也可以在开始复制之前获得大小。我如何获得它?filesystem watcher并没有提供这些信息。我可以在pc上通过复制文件对话框进行操作(以确定它何时关闭)吗?i、 e.不在目标地上使用观察者我不知道这是否是最好的做法。首先,您需要确定流程。文件复制过程位于“windows资源管理器”下(如果使用任务管理器)。除非有人知道如何轻松获得正确的流程。另一种方法是尝试重命名目标目录(例如,类似directory.Move()),如果可以这样做,则该目录未被使用,并且所有文件都已复制到该目录。THX文件创建后将立即引发该事件。这并不意味着文件中的数据是完全写入的。