From 57ca3d95ef4b878afde92164dc5d8f43f412a3e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=87=AF?= Date: Thu, 27 Feb 2025 17:18:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=A7=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E8=AF=BB=E5=8F=96=E8=A2=AB=E5=8D=A0=E7=94=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CnasSynchronusClient/RemoteFileCopy.cs | 32 +++++++++++++++++++------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/CnasSynchronusClient/RemoteFileCopy.cs b/CnasSynchronusClient/RemoteFileCopy.cs index 9b41e20..5d853d1 100644 --- a/CnasSynchronusClient/RemoteFileCopy.cs +++ b/CnasSynchronusClient/RemoteFileCopy.cs @@ -163,9 +163,12 @@ namespace CnasSynchronusClient AppLog.Error("CopyFileFromRemote dst 打印日志 " + dst); AppLog.Error("CopyFileFromRemote fileName 打印日志 " + fileName); + FileStream inFileStream = null; + FileStream outFileStream = null; + try { - FileStream inFileStream = new FileStream(src, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + inFileStream = new FileStream(src, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); if (!Directory.Exists(dst)) { Directory.CreateDirectory(dst); @@ -173,23 +176,36 @@ namespace CnasSynchronusClient dst = Path.Combine(dst, fileName); AppLog.Error("CopyFileFromRemote dst 打印日志 " + dst); - FileStream outFileStream = new FileStream(dst, FileMode.OpenOrCreate); - byte[] buf = new byte[inFileStream.Length]; + if (true == File.Exists(dst)) + { + try + { + File.SetAttributes(dst, FileAttributes.Normal); + File.Delete(dst); + } + catch { } + } + + outFileStream = new FileStream(dst, FileMode.Create); + byte[] buf = new byte[1024]; int byteCount; while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0) { outFileStream.Write(buf, 0, byteCount); } - inFileStream.Flush(); - inFileStream.Close(); - outFileStream.Flush(); - outFileStream.Close(); + outFileStream?.Flush(); } catch (Exception ex) { AppLog.Error(ex.Message); } + finally + { + inFileStream?.Close(); + inFileStream?.Dispose(); + outFileStream?.Close(); + outFileStream?.Dispose(); + } } - } }