我有一个相当独特的情况。我使用通配符(" * .txt")作为示例,进行了大量的搜索以及我所看到的大部分内容终止于查找特定文件。我需要做的是在路径之间移动文件,第一个文件具有更改的子目录。我正在下载.zip,提取它,并移动一个名字永远不会改变的文件。其父目录的名称会根据日期戳更改。
//original extracted folder
string path = @"C:\IP-Test_20140715\File.csv";
//where to move
string path2 = @"C:\File.csv";
File.csv永远不会改变,但IP-Test_20140715将根据日期而改变(无论调用提取的文件夹是什么),下划线之后的所有内容都会有所不同。
如果目录中不能使用通配符,是否可以使用ZipFile.ExtractToDirectory
在c#中强制解压缩目录的名称?
答案 0 :(得分:1)
使用:
Directory.EnumerateFiles (@"C:\IP-Test_20140715", "*.txt")
枚举不同的文件。
因此:
foreach(var subdir in Directory.EnumerateDirectories (@"C:\", "IP-Test_*")) {
foreach(var file in Directory.EnumerateFiles (subdir, "*.cvs")) {
File.Move(file,Path.Combine(@"C:\",Path.GetFileName(file)));
}
}
另一方面,我不明白为什么要使用C#?一个简单的bash
脚本可以更轻松地完成这个过程......