如何在C#中使用通配符获取动态生成文件的字符串?

3
这是我在Stack Overflow上的第一个问题。 这是我当前希望解决的问题和问题:
我有一个每天动态生成的文件。
"EDIOut5_20170112_063449.csv"

我希望将它移动到另一个目录。我目前正在使用System.IO.File.Move()
我的主要问题是,当我尝试调用字符串时,代码的这部分是随机生成的。
"063449"

所以最终是这样的。
 string fileName = "EDIOut"+ dayOfWeekplus + "_" + shortDate + "_" + "063449" + ".csv";

问题是,我能否在C#中使用通配符来代替代码中随机生成的部分?
谢谢!
1个回答

2

您需要将任务分成两个步骤...

  1. 使用Directory.GetFiles()查找与特定模式匹配的文件(注意,*字符是通配符)
  2. 使用File.Move()移动找到的文件

示例代码:

// use wildcard pattern containing *
string pattern = "EDIOut"+ dayOfWeekplus + "_" + shortDate + "_" + "*" + ".csv"
// get list of files matching pattern
string[] files = System.IO.Directory.GetFiles(@"C:\your\path\here\", pattern);
// move found files to new location
for (int i = 0; i < files.Length; i++)
{
    System.IO.File.Move(files[i], @"c:\new\path\" + Path.GetFileName(files[i]));
}

你比我快了6分钟!我也打算建议使用正则表达式。 - Mat Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接