3 回答
TA贡献1839条经验 获得超15个赞
如果文件不存在,File.Delete实际上不会引发任何异常。因此,我将完全删除存在的检查。
try {
int delay = 400;
File.Delete(@"C:\Users\Admin\source\Bargstedt.csv");
Thread.Sleep(delay); // to prevent delete and copy happening at the
// same time.
System.IO.File.Copy(s, destFile, true);
}catch (IOException ex) {}
您还可以查看此帖子:
C# 中的 FileStream 和 FileSystemWatcher,奇怪的问题“进程无法访问文件” 和用户 EventHorizon 的答案检查文件是否已关闭。
还建议检查目录是否有权限 (FileIOPermissionAccess.Write)
TA贡献1772条经验 获得超6个赞
我想你的意思是即使有文件也要写文件。
您正在使用:
bool exists = info.Exists;
if (exists == true)
{
File.Delete(@"C:\Users\Admin\source\Bargstedt.csv");
}
else
{
System.IO.File.Copy(s, destFile, true);
}
删除其他:
bool exists = info.Exists;
if (exists == true)
{
File.Delete(@"C:\Users\Admin\source\Bargstedt.csv");
}
System.IO.File.Copy(s, destFile, true);
TA贡献1936条经验 获得超6个赞
当文件存在于目标路径中并具有该现有文件的备份计划时,使用它来复制文件。
// To copy a file to another location and
// overwrite the destination file if it already exists.
if (!File.Exists(destFile))
{
System.IO.File.Copy(sourceFile, destFile, true);
}
else
{
System.IO.File.Move(destFile, existingFilePath); //if file is existing and then move it to specific folder
try
{
System.IO.File.Copy(sourceFile, destFile, true);
}
catch (Exception)
{
System.IO.File.Move(existingFilePath, destFile); //If anythig went wrong, old file is relocated correctly
}
System.IO.File.Delete(existingFilePath); // Delete old file, all is ok now.
}
- 3 回答
- 0 关注
- 200 浏览
添加回答
举报