Skip to content

Commit

Permalink
Copy/Move Directory use overwrite
Browse files Browse the repository at this point in the history
  • Loading branch information
AigioL committed May 15, 2022
1 parent c66a427 commit ae43cd8
Showing 1 changed file with 6 additions and 13 deletions.
19 changes: 6 additions & 13 deletions src/Common.CoreLib/IOPath.cs
Original file line number Diff line number Diff line change
Expand Up @@ -609,7 +609,7 @@ public static void CopyDirectory(string sourceDir, string destinationDir, bool r
foreach (FileInfo file in dir.GetFiles())
{
string targetFilePath = Path.Combine(destinationDir, file.Name);
file.CopyTo(targetFilePath);
file.CopyTo(targetFilePath, true);
}

// If recursive and copying subdirectories, recursively call this method
Expand Down Expand Up @@ -647,15 +647,6 @@ public static void XCopyDirectory(string sourceDirName, string destDirName, int
p.Kill();
}

static void DirMove(string sourceDirName, string destDirName, bool overwrite = true)
{
#if NETCOREAPP3_0_OR_GREATER
Directory.Move(sourceDirName, destDirName, overwrite);
#else
Directory.Move(sourceDirName, destDirName);
#endif
}

/// <summary>
/// 将文件或目录及其内容移动或复制到新位置
/// </summary>
Expand All @@ -665,7 +656,7 @@ public static void MoveDirectory(string sourceDirName, string destDirName)
{
try
{
DirMove(sourceDirName, destDirName, true);
Directory.Move(sourceDirName, destDirName);
}
catch
{
Expand Down Expand Up @@ -709,7 +700,7 @@ public static async Task MoveDirectoryAsync(string sourceDirName, string destDir
const float maxProgress = CC.MaxProgress;
try
{
DirMove(sourceDirName, destDirName);
Directory.Move(sourceDirName, destDirName);
}
catch
{
Expand Down Expand Up @@ -767,9 +758,11 @@ async Task CopyFileAsync(FileInfo file)
streams.Add(sourceStream);

string targetFilePath = Path.Combine(destinationDir, file.Name);
destStream = File.Create(targetFilePath);
destStream = new FileStream(targetFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShareReadWriteDelete);

await sourceStream.CopyToAsync(destStream, cancellationToken);
await destStream.FlushAsync(cancellationToken);
destStream.SetLength(destStream.Position);
}
finally
{
Expand Down

0 comments on commit ae43cd8

Please sign in to comment.