Skip to content

Commit

Permalink
Add recursive copy for directories
Browse files Browse the repository at this point in the history
  • Loading branch information
PrashantMohta committed Mar 7, 2023
1 parent da43acf commit ec14fe1
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions Utils/IoUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,17 @@ public static bool DirectoryHas(string sourceDirectory,string match = "*",Search
/// <param name="destination"></param>
/// <param name="create">Create destination directory if it does not exist</param>
public static void DirectoryCopyAllFiles(string source,string destination,bool create = false){
DirectoryCopyAllFiles(source,destination,create,false);
}

/// <summary>
/// Copy all files frm source into destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <param name="create">Create destination directory if it does not exist</param>
/// <param name="recursive">Copy subdirectories recursively</param>
public static void DirectoryCopyAllFiles(string source,string destination,bool create, bool recursive){
if(!Directory.Exists(source) || (!create && !Directory.Exists(destination))){
return;
}
Expand All @@ -71,6 +82,15 @@ public static void DirectoryCopyAllFiles(string source,string destination,bool c
Satchel.Instance.LogError("A File could not be Copied : " + e.ToString());
}
}
if (recursive)
{
string[] directories = Directory.GetDirectories(source);
foreach (var subDir in directories)
{
string newDestinationDir = Path.Combine(destination, Path.GetFileName(subDir));
DirectoryCopyAllFiles(subDir, newDestinationDir, create,recursive);
}
}
}

}
Expand Down

0 comments on commit ec14fe1

Please sign in to comment.