我正在尝试加载一个我知道部分名称的文件(并且知道它将由我知道的部分唯一标识。)
这里是它的主旨:
string fileName = ID + " - " + Env + " - ";
byte[] buffer;
using (FileStream fileStream = new FileStream(Server.MapPath("~") +
fileName + "*", FileMode.Open))
{
using (BinaryReader reader = new BinaryReader(fileStream))
{
buffer = reader.ReadBytes((int)reader.BaseStream.Length);
}
}
第 4 行是我需要帮助的地方。如果我说 fileName+"*"那么我将得到 "ID - Env - *"而不是匹配 "ID - Env -"之后的任何文件的通配符(我有 ID 和 Env 的真实变量,它们只是没有在这里显示。)
有没有办法说“匹配任何符合开头的文件”?
(我使用的是 VS 2008 SP1 和 .NET 3.5 SP1)
感谢您的帮助。
最佳答案
在打开 FileStream
之前,您需要找到所需的文件。
string[] files = System.IO.Directory.GetFiles(Server.MapPath("~"), fileName + "*");
if(files.Length == 1) // We got one and only one file
{
using(BinaryReader reader = new BinaryReader(new FileStream(files[0])))
{
// use the stream
}
}
else // 0 or +1 files
{
//...
}
关于c# - 使用 WildCard 加载 System.IO.FileStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224594/