【问题标题】:Get path to it and run process获取路径并运行进程
【发布时间】:2016-12-06 18:32:19
【问题描述】:

如何通过环境变量获取路径来获取文件:

string path = (@"%ProgramData%\\myFolder\\textdoc.txt");

通过环境变量路径运行文件:

 Process.Start(@"%ProgramData%\\myFolder\\file.exe");

【问题讨论】:

标签: c# directory resources environment-variables process.start


【解决方案1】:

以下是创建文件夹、文件和在其中写入文本的方法。文件创建并写入后,将在记事本中打开。

private void button1_Click(object sender, EventArgs e)
    {
        string basePath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
        string myDir = Path.Combine(basePath, "myFolder");
        if (!Directory.Exists(myDir))
        {
            Directory.CreateDirectory(myDir);
        }
        string myFile = Path.Combine(myDir, "textdoc.txt");
        using (FileStream fs = File.OpenWrite(myFile))
        {
            using (StreamWriter wrtr = new StreamWriter(fs, Encoding.UTF8))
            {
                wrtr.WriteLine("This is my text");
            }
        }

        Process.Start("notepad.exe", myFile);

    }

注意:上述代码创建和写入的方式文件将始终覆盖文件内容。如果你需要追加新内容,那么你应该使用 StreamWriter 的不同构造函数并将追加参数传递为 true。

您还需要管理员权限才能在“ProgramData”文件夹中创建文件夹/文件。

【讨论】:

  • 你好,我要检查你的答案,让我看看,但在我想问你建议之前,正如你所说的关于写入程序数据的管理员权限。为这种情况编写文件夹/文件并使其可用于其他用户的可执行文件的最佳方法是什么?我那里只有文本文档和一个 .exe 文件。所以也许程序数据不是这种情况的好方法,因为我不确定如何在获得许可的情况下弄清楚,例如当我创建路径时@"%ProgramData%\\myFolder\\textdoc.txt"对于可执行文件?
  • 您可以使用除 ProgramData、Program Files 等所有用户都可以访问的任何其他目录。
  • 我得到的唯一问题,Process.Start("notepad.exe", myFile); 中的 notepad.exe 是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
相关资源
最近更新 更多