2016-10-19 77 views
2

我有一個名爲像幾個文件:C#打開文件與字符變量

  1. 6327_1-SWD001-171016_1.txt
  2. 6327_1-SWD011-181016_1.txt
  3. 6327_1,SWD028-191016_1.txt

正如你可以看到每個文件SWD值互換,我想知道是否有打開一個文件,不知道社署值的方式,這樣的事情:

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

或者StreamReader是否需要文件的EXACT名稱?

+0

你打算打開哪一個文件? –

+0

@JanneMatikainen:只有一個匹配(包含'_171016_'的那個)。 – Heinzi

+0

對不起,我的意思是我有更多的日期(2016年10月17日)只有SWD001變化 – Bart88

回答

5

StreamReader需要文件的EXACT名稱。你可以,但是,使用Directory.GetFiles找到你要找的文件:

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 

files則包含符合模式的所有文件名(包括路徑)的陣列。 Directory.GetFiles支持*?通配符。

(無關側面說明:退房File.ReadLinesFile.ReadAllLinesFile.ReadAllText通常情況下,你不需要一個StreamReader再閱讀文本文件的內容,請注意,這些方法都需要完整的文件名也。)

+0

當我在字符串中使用'????'時,它會給出一個例外:在路徑中有非法字符 – Bart88

+0

@ Bart88:在我的機器上工作正常。你正在使用什麼行*返回錯誤? – Heinzi

+0

噢,我看到錯誤,我應該分割文件.... – Bart88