小编sha*_*kss的帖子

使用File.Copy()的IOException,尽管先前的File.Exists()检查

这与简单的文件复制操作代码有关.我的要求是只将新文件从源文件夹复制到目标文件夹,所以在复制文件之前,我检查:

  • 它存在于源文件夹中
  • 它在目标文件夹中不存在

在此之后,我继续复制操作.
但是,我随机获得一个IOException,声明"文件<filename>已经存在".
现在,我在2台服务器上运行此代码(作为win服务的一部分),所以我愿意承认,也许,只是可能,在Server1检查条件并继续复制文件的短暂间隔内,Server2复制它到目标,导致Server1上的IOException.
但是,我有几千个文件被复制,我得到了数千个这个错误.这怎么可能?我错过了什么?这是代码:

try
{
    if(File.Exists(String.Format("{0}\\{1}",pstrSourcePath,strFileName)) && !File.Exists(String.Format("{0}\\{1}",pstrDestPath,strFileName)))
            File.Copy(String.Format("{0}\\{1}",pstrSourcePath,strFileName),String.Format("{0}\\{1}",pstrDestPath,strFileName))     
}
catch(IOException ioEx)
{
    txtDesc.Value=ioEx.Message;
}
Run Code Online (Sandbox Code Playgroud)

.net c#

2
推荐指数
1
解决办法
2959
查看次数

标签 统计

.net ×1

c# ×1