为了账号安全,请及时绑定邮箱和手机立即绑定

请问这是不是个bug,要怎么解决 ?这个项目一天要发送几万个文件,将近一个月才出现这一例情况。

请问这是不是个bug,要怎么解决 ?这个项目一天要发送几万个文件,将近一个月才出现这一例情况。

C#
呼唤远方 2023-04-08 18:14:47
在项目中碰到一个这样的bug,C#的发送文件的一个项目,功能是给指定的一些服务器ftp发送文件,然后发送成功的就移动到备份文件夹中.我调用的是File.Move(file_path, dest_path)方法来移动文件,file_path是原来所在的路径,dest_path是新路径,都在D盘下面,现在的情况是:项目运行的时候有一个文件xxx.txt,ftp发送成功后,移动到备份文件夹中,结果备份文件夹里有了这个xxx.txt文件,但原来的路径file_path下也还有这个文件。
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

引用

如果文件被占用而导致没有删除,怎么不会报错呢?

异常 条件 
IOException 目标文件已经存在。 

ArgumentNullException sourceFileName 或 destFileName 为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。 

ArgumentException sourceFileName 或 destFileName 是零长度字符串、只包含空白或者包含在 GetInvalidPathChars 中定义的无效字符。 

UnauthorizedAccessException 调用方没有所要求的权限。 

FileNotFoundException 未找到 sourceFileName。 

PathTooLongException 指定的路径、文件名或者两者都超出了系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。 

DirectoryNotFoundException sourceFileName 或 destFileName 中指定的路径无效(例如,它位于未映射的驱动器上)。 

NotSupportedException sourceFileName 或 destFileName 的格式无效。 


异常中不包括这种情况,文件可以读共享(复制文件是读源文件),不能写共享(删除或者移动源文件,都是要文件锁吧),大概就这意思了


查看完整回答
反对 回复 2023-04-12
?
繁花如伊

TA贡献2012条经验 获得超12个赞

windows同一分区的移动没错是不用复制再删除; 
File.Move方法的两个参数,原文件名与目标文件名可以不一样,所以是复制; 
Move应该是调用系统指令,跟系统上操作的效果是一样的吧

查看完整回答
反对 回复 2023-04-12
  • 2 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信