【发布时间】:2011-04-07 14:44:03
【问题描述】:
我需要能够打开磁盘上的文件,但通过查询字符串将参数传递给该文件。它是一个 .SWF 文件,因此我传入了使其正确加载所需的参数。
我使用的代码是:
FileStream fs = new FileStream(@"C:\test\file.swf?key=value", FileMode.Open, FileAccess.Read);
打开文件时出现错误:“路径中的字符无效”,因为“?”在文件名中。有没有办法使用文件名中的查询字符串将文件从磁盘加载到 FileStream 对象中?
【问题讨论】:
-
我不明白:文件是一个文件,当你得到一个文件时你没有执行任何东西,你只是得到它的内容,那你为什么要发送参数?你想做什么?
-
我这样做的原因有很多,全部都在问题的范围之外。在高层次上,我正在加载的 .SWF(在我的示例中为 file.swf)是一个 shell。我发送的参数实际上是“Filename=realSwfFile.swf”,它是加载正确内容的 .SWF。我将其加载到处理这些类型的事物的 Flash 对象中,并且在加载 Flash 文件时它使用 FileStream 作为它的基础。这是给我老板的概念证明。
-
querystring 是一个 http/web 概念...当您请求即 some.thing/file.swf?key=value 时,qs 不会传递给文件本身,但在浏览器中运行的 flash 运行时可以询问 qs 是什么用于请求文件。我不知道您将文件加载到哪个运行时,但它也必须有某种方法来设置 qs。
标签: c# file-io filestream