【问题标题】:how do i run this code on other computers (relative path c# wpf) [closed]我如何在其他计算机上运行此代码(相对路径 c# wpf)[关闭]
【发布时间】:2020-06-27 05:11:18
【问题描述】:

如何让它在其他计算机上运行我已经尝试了所有与相对路径 c# wpf 相关的东西,并检查了 stackoverflow 上的其他帖子,但没有任何运气它仍然找不到文件

抱歉英语不好

using System.Diagnostics

private void btnDiscord_Click(object sender, RoutedEventArgs e)
{
        try
        {
            Process p = new Process();
            p.StartInfo = new ProcessStartInfo("C:\\Users\\morten\\AppData\\Local\\Discord\\app- 
            0.0.306\\Discord.exe");
            p.Start();
        }
        catch
        {
            MessageBox.Show("Discord Not Found");
        }
}

【问题讨论】:

  • 你可以在谷歌上搜索一下 windows "PATH" 是如何工作的。

标签: c# wpf path


【解决方案1】:

Appdata\Local 在 Windows 系统中被称为 %localappdata%

Appdata\Roaming 被引用为 %appdata%

那你必须做

using System.Diagnostics
private void btnDiscord_Click(object sender, RoutedEventArgs e)
   {
       try
       {
           Process p = new Process();
           var path= Environment.ExpandEnvironmentVariables("%localappdata%\\Discord\\app- 
           0.0.306\\Discord.exe");
           p.StartInfo = new ProcessStartInfo(path); //work with folders in this way is baaad
           p.Start();
       }
       catch
       {
           MessageBox.Show("Discord Not Found");
       }
   }

我会这样找到不和谐的应用程序:

  • 我得到了 Discord localappdata 文件夹 (%localappdata%\Discord)。
  • 我开始在“Discord.exe”文件的子文件夹中查找并在找到时中断循环。

请注意,这并不代表您什么都没有。您可以使用旧版本,或者如果他们选择更改 exe 文件的名称,则什么也找不到。

如果不和谐的子文件夹使用一种模式(他们现在这样做......你永远不知道你的应用程序什么时候会崩溃)你可以这样做:

  • 包含“app”且按字母顺序排列的子文件夹名称。

    public string FindDiscordFile() {
       var subfolders = Directory.GetDirectories(Environment.ExpandEnvironmentVariables("%localappdata%\\Discord"));
       var subfolder = subfolders.Where(folder=> folder.StartsWith("app")).Max(folder=> folder);
       return subfolder+"\\Discord.exe";
    }
    

【讨论】:

  • 不能在GetDirectories之类的方法中直接使用环境变量。你需要把它和Environment.ExpandEnvironmentVariables结合起来。
  • @John true,我的错,写得很快,没有思考,谢谢
  • 别担心!我一直这样做:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多