文件名中带有查询字符串的文件流
本文关键字:文件 字符串 查询 文件名 | 更新日期: 2023-09-27 17:49:27
我需要能够打开磁盘上的文件,但通过查询字符串将参数传递给该文件。它是一个. swf文件,所以我传入了必要的参数以使其正确加载。
我使用的代码是:
FileStream fs = new FileStream(@"C:'test'file.swf?key=value", FileMode.Open, FileAccess.Read);
打开文件时出现错误:"路径中无效字符",因为文件名中有"?"。是否有任何方法从磁盘加载文件到FileStream对象使用文件名中的查询字符串?
我觉得你做不到你想做的事。当您从磁盘加载文件时,querystring作为一个概念不存在。它将只返回SWF文件中包含的字节。
查询字符串在执行级别很重要。
所以我通过将两个SWF文件放在web服务器上并使用以下代码来解决这个问题。不完全是可用于生产的代码,但它说明了这个概念。
private static FileStream GetFileStream()
{
string url = @"http://www.someurl.com/shell.swf?Filename=actualfile.swf";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
WebResponse response = request.GetResponse();
byte[] result = null;
int byteCount = Convert.ToInt32(response.ContentLength);
using (BinaryReader reader = new BinaryReader(response.GetResponseStream()))
result = reader.ReadBytes(byteCount);
return new FileStream(result);
}