如何使用C#搜索D驱动器中的文件夹
本文关键字:文件夹 驱动器 何使用 搜索 | 更新日期: 2023-09-27 18:28:23
我有一个文件夹("App_data_payroll"),位于D驱动器中。我需要找到这个文件夹,我需要复制该文件夹的文件,如果文件夹有文件,我必须使用C#将这些文件粘贴到另一个文件夹中。。。
使用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);
}
}
尝试使用Directory.GetDirectories()获取与特定模式匹配的目录列表。
Directory.GetDirectories(path, searchPattern);
您可以做的是首先检查文件夹是否存在于指定的路径上,如下所示:
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
以下函数将帮助您执行此操作,这将接受两个参数
- 要搜索的目录名
- 基本目录(在其中执行搜索操作)是可选的
将收集目录中的文件并移动到特定位置(如果存在)
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");