【问题标题】:Open a file in c# [closed]在c#中打开一个文件[关闭]
【发布时间】:2012-04-16 01:05:31
【问题描述】:

我正在尝试读取文件夹中的所有文件。如果名称是 index.html,则不会发生任何事情。它甚至没有在浏览器中打开文件。

这是我使用的代码。

foreach (System.IO.FileInfo thefile in fiArr)
{
    if (thefile.Name == "index.html")
    {
        FileStream fileStream = new FileStream(path + thefile.Name, FileMode.Open, FileAccess.Read);   
    }
}

【问题讨论】:

  • 你在说什么浏览器?你有任何错误吗?例外?
  • 我的意思是谷歌浏览器,因为网站上有 index.html
  • 我没有例外。它只是没有做任何事情。
  • 您发布的代码不会做任何事情。您只是在创建一个新的文件流。你想发生什么?
  • 我还是不明白浏览器和它有什么关系?你在fiArr 中有一个名为index.html 的文件吗?

标签: c# asp.net file io


【解决方案1】:

您的所有代码都是创建一个指向该文件的 FileStream。因此,您可以读取文件并在内存中获取其内容。但是你不能指望它在任何浏览器中打开。您可以使用 Process.Start 方法使用与此文件类型关联的默认程序打开文件:

foreach (System.IO.FileInfo thefile in fiArr)
{
    if (thefile.Name == "index.html")
    {
        Process.Start(thefile.Name);
    }
}

【讨论】:

  • @Emged - 你的问题被标记为 asp.net。请注意,调用 Process.Start 只会在主机/服务器机器上打开浏览器。这在您开发时可能没问题,但一旦部署,您将在服务器上打开一个可能没人会看到的浏览器。
【解决方案2】:

您的代码将文件的内容放入FileStream,以便您可以在代码中使用它。接下来你需要对 FileStream 做点什么。

如果您希望使用默认应用程序打开文件(即出现在浏览器中),请使用:

System.Diagnostics.Process.Start(thefile);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多