C#打开具有可变字符的文件

C#打开具有可变字符的文件,c#,.net,vb.net,streamreader,C#,.net,Vb.net,Streamreader,我有几个文件名为: 6327_1-SWD001-171016_1.txt 6327_1-SWD011-181016_1.txt 6327_1-SWD028-191016_1.txt 正如您所看到的,每个文件的SWD值交换,我想知道是否有一种方法可以在不知道SWD值的情况下打开文件,如下所示: 6327_1-SWD???-171016_1.txt 或者StreamReader需要文件的确切名称吗?StreamReader需要文件的确切名称。但是,您可以使用查找要查找的文件: var files =

我有几个文件名为:

  • 6327_1-SWD001-171016_1.txt
  • 6327_1-SWD011-181016_1.txt
  • 6327_1-SWD028-191016_1.txt
  • 正如您所看到的,每个文件的SWD值交换,我想知道是否有一种方法可以在不知道SWD值的情况下打开文件,如下所示:

    6327_1-SWD???-171016_1.txt


    或者
    StreamReader
    需要文件的确切名称吗?

    StreamReader需要文件的确切名称。但是,您可以使用查找要查找的文件:

    var files = Directory.GetFiles(@"C:\Some\Directory", "6327_1-SWD???-171016_1.txt");  // C#
    
    Dim files = Directory.GetFiles("C:\Some\Directory", "6327_1-SWD???-171016_1.txt")    ' VB
    
    文件
    然后包含与模式匹配的所有文件名(包括路径)的数组
    Directory.GetFiles
    支持
    *
    通配符


    (不相关的旁注:签出
    File.ReadLines
    File.ReadAllLines
    File.ReadAllText
    。通常,您不再需要StreamReader来读取文本文件的内容。请注意,这些方法也需要完整的文件名。)

    您打算打开哪一个文件?@JanneMatikainen:只有一个匹配(包含
    \u 171016\u
    )的文件。是的,很抱歉,我的意思是在那个日期(2016年10月17日)我还有几个文件,只有SWD001更改,我的问题仍然存在。这些似乎是日志文件,您对特定日期的特定文件感兴趣,您如何知道它是哪一个?你会如何告诉代码这些信息来打开文件。这些文件是在机器中设置的,用来告诉他该做什么。这些日期是机器需要生产产品的日期(因此,我可以很容易地使用
    日期时间获取该信息。现在当我使用字符串中的
    ??
    时,它会出现一个异常:路径中的非法字符。@Bart88:在我的机器上运行良好。您使用哪一行返回错误?现在可以了,非常感谢您的帮助:)我以为
    GetFiles
    只适用于按目录