【问题标题】:C# How can I close an open file with .Net Framework?C# 如何使用 .Net Framework 关闭打开的文件?
【发布时间】:2020-05-05 13:25:08
【问题描述】:

我需要我的程序能够按名称关闭给定文件。 我玩弄了流程,但意识到我无法正确获取流程本身。

假设我打开了一个“Text.txt”记事本文件,我想关闭它。我试过了

   var processesToKill = Process.GetProcessesByName(processName);

   foreach (var process in processesToKill)
   {
       process.Kill();
   }

但得出的结论是,友好的文件名对此没有任何帮助,因此 processesToKill 留空(没有这样的过程,呵呵)。

所以我知道我必须使用“记事本”作为processName,但我需要该程序来关闭不同的文件类型/打开的程序(word、excel、chrome、随机 .txt 或 .mp3 文件等.).

我的问题是,有没有办法让它做到这一点,而无需编写大量代码块检查打开的文件是在哪个进程下并通过 CloseMainWindow() 或类似方法关闭它?

对不起,这个问题的解释相当混乱,希望我没有让你太头疼/

【问题讨论】:

标签: c# file process system.diagnostics


【解决方案1】:

如果你使用 , using 语句,它会在读取后自动关闭文件。下面只是一个关于它如何工作的示例。

String path = @"C:\Text.txt";

    using (StreamReader sr = File.OpenText(path))
    {
     String s = "";

     while ((s = sr.ReadLine()) != null)
     {
      Console.WriteLine(s);
     }

【讨论】:

  • 我认为 OP 是在询问在其他程序中打开的文件,而不是在 OP 正在编写的那个程序中。
  • 我需要它来关闭其他程序已经打开的文件,而不是我正在写的那个。
猜你喜欢
  • 2013-07-24
  • 2010-12-18
  • 2016-04-09
  • 2011-10-08
  • 1970-01-01
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多