我在D Drive中有一个文件夹(" App_data_payroll")。我需要找到这个文件夹,我需要复制该文件夹的文件,如果该文件夹有文件,我必须使用C#将这些文件粘贴到另一个文件夹中...
答案 0 :(得分:1)
以下功能将帮助您完成此操作,这将接受两个参数
将收集目录中的文件并移动到特定位置(如果存在)
private static void PerformFileCopy(string DirectoryToSearch, string BaseDirectory = @"D:\")
{
if (Directory.Exists(BaseDirectory))// check for existance of base directory to avoid throwing exception
{
var searchDir = Directory.GetDirectories(BaseDirectory).Where(x => new DirectoryInfo(x).Name == DirectoryToSearch).ToList();
string copyToLocation = @"E:\newDir";
if (searchDir.Count > 0) // True if such directory found
{
foreach (var file in Directory.GetFiles(searchDir[0])) // will iterate if Directory has files
{
File.Copy(file, copyToLocation, true);
}
}
}
}
如何调用此方法:
选项1:PerformFileCopy("App_data_payroll");
选项2:PerformFileCopy("App_data_payroll",@"D:\BaseFolder\MyDir");
答案 1 :(得分:1)
使用GetDirectories查找文件夹路径,然后遍历文件夹中的每个文件。使用System.IO.File.Copy将文件复制到目标位置。
string dir = Directory.GetDirectories(@"D:\","App_data_payroll").FirstOrDefault();
string targetPath = "D:\CopyToFolder\";
if (System.IO.Directory.Exists(dir))
{
string[] files = System.IO.Directory.GetFiles(dir);
// Copy the files and overwrite destination files if they already exist.
foreach (string s in files)
{
var fileName = System.IO.Path.GetFileName(s);
var destFile = System.IO.Path.Combine(targetPath, fileName);
System.IO.File.Copy(s, destFile, true);
}
}
答案 2 :(得分:0)
尝试使用Directory.GetDirectories()获取与您的特定模式匹配的目录列表。
Directory.GetDirectories(path, searchPattern);
答案 3 :(得分:0)
您可以做的是首先检查指定路径上是否存在文件夹,如下所示:
if(Directory.Exists("path"))
如果目录存在,您可以使用以下命令将其内容复制到另一个文件夹:
//copies all files in the folder
foreach(var file in Directory.GetFiles(sourceDir))
File.Copy(file, Path.Combine(targetDir, Path.GetFileName(file)));
//copies all folders in the folder
foreach(var directory in Directory.GetDirectories(sourceDir))
Copy(directory, Path.Combine(targetDir, Path.GetFileName(directory)));
参考:https://msdn.microsoft.com/en-us/library/system.io.directory.exists(v=vs.110).aspx