删除“文件名”的子路径,创建文件结构

本文关键字:文件名 创建 路径 文件结构 删除 | 更新日期: 2023-09-27 18:17:30

我有以下List<String> fileNames传递到我的方法,我想要删除其中的子路径并创建剩下的文件结构

string subPath = "C:''temp''test"
List<string> filesIncoming = new List[]{@"C:'temp'test'a.txt", @"C:'temp'test'intest'a.txt"};
string outputDir = "C:''temp3''temp";

输出应该是:

C:''temp3'temp'a.txt
C:''temp3'temp'intest'a.txt

这就是我要做的

foreach (var file in files)
{
    var directory = Path.GetDirectoryName(file);
    DirectoryInfo source = new DirectoryInfo(directory);
    var fileName = Path.GetFileName(file);
    var destDir = Path.Combine(destinatonFilePath, source.Name); //how do I remove sub-path from source.Name and combine the paths properly?
    CreateDirectory(new DirectoryInfo(destDir));
    File.Copy(file, Path.Combine(destDir, fileName), true);
}

删除“文件名”的子路径,创建文件结构

我认为你应该使用旧的好字符串。替换从传入文件中删除公共基本路径,并将其替换为输出文件

的公共基本路径
string subPath = "C:''temp''test"
string outputDir = "C:''temp3''temp";
foreach (var file in files)
{
    // Not sure how do you have named these two variables.
    string newFilePath = file.Replace(subPath, outputDir); 
    Directory.CreateDirectory(Path.GetDirectoryName(newFilePath));
    File.Copy(file, newFilePath, true);
}