string.Replace不会替换我的字符串中的双反斜杠
我需要通过点击我的表单上的按钮来运行某种应用程序, 我在谈论WPF桌面应用程序,以及关于C#作为编程语言,以及今天我遇到了一个问题,我尝试在按钮键上运行某种应用程序,但是我用调试器意识到我的路径是这样写的:(我在我的Settings.setting文件中保留路径,并且我没有使用双反斜线那是我第一次quuestion,为什么我的下面提到的路径看起来就像是,)string.Replace不会替换我的字符串中的双反斜杠
C:\\ \\我的电脑MyApplication的\\ Application.exe
,我需要它的单反斜线,我试图做书面张贴如下:
private void OpenApplication_Click(object sender, MouseButtonEventArgs e)
{
string path = Globals.MyApplicationPath;
string path2 = path.Replace(@"\\", @"\");
//path2 is still dobule backshashed :(
if (Directory.Exists(path2))
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = Globals.MyApplicationPath;
Process.Start(start);
}
else
{
MessageBox.Show("Path is not correct.");
}
}
我意识到Directory.Exists(path2)
是八方通假的,所以它acctually意味着我的路径不存在,即使存在,所以我想我需要删除“\\”并将其替换为“\”:)
我想我知道问题是什么。
您的路径包含一个文件名。 Directory.Exists()
方法将返回false,因为该名称不是有效的目录名称。
如果你在找什么做的是找到的目录,然后剥去文件名,然后检查:
var path2 = Path.GetDirectoryName(path);
var exists = Directory.Exists(path2) //This should be true
如果你要的是找出文件是否存在,用途:
File.Exists(path)
所以,你的代码就变成了:
private void OpenApplication_Click(object sender, MouseButtonEventArgs e)
{
if (File.Exists(Globals.MyApplicationPath))
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = Globals.MyApplicationPath;
Process.Start(start);
}
else
{
MessageBox.Show("Path is not correct.");
}
}
看起来像是这样,但是如果我从路径名中提取Word.exe,我怎么能运行一个应用程序,例如Word.exe,但是这是你说的是真的,但是不幸的是我根本没有解决我的问题,但投票! –
@ Roxy'Pro:这应该足以让你指向正确的方向。无论如何,我用你所需要的更新了我的答案。再读一遍。 – JuanR
'为什么我的路径看起来像that'什么是你在调试器窗口中看到。使用*放大镜*图标将内容看作文本。 https://stackoverflow.com/a/26379763/932418 –
@LB使用放大镜图标我的值看起来不错,但即使该路径存在100%,它仍然是false。:/ –
如果路径在设置中不存在斜杠,那么代码中就不会有斜线。你只是在看C#处理那个角色的方式。路径不存在。你认为它的确如此。那是你的问题。再看一看。按照建议使用放大镜图标抓住字符串,并直接将其粘贴到资源管理器中,看它是否打开文件夹。 – JuanR