我有
string filepath = @"F:\first_folder\Node3_V_1.3";
我有一个名为version_check
点击此按钮,我想打印消息:
将node3升级到版本1.3
详细信息来自字符串filepath
。我如何用C#编写代码。
答案 0 :(得分:2)
你可以这样做
version_check.Click += version_check_Click; //subscription of the event
public void version_check_Click(object sender, EventArgs e)
{
string filepath = @"F:\first_folder\Node3_V_1.3";
var name = Path.GetFileName(filepath).Split(new[] {'_', 'V'}, StringSplitOptions.RemoveEmptyEntries);
if (name.Length < 1)
{
MessageBox.Show("Failed to update");
return;
}
MessageBox.Show(string.Format("Upgrading {0} to version {1} ...", name[0], name[1]));
}
调试信息:
答案 1 :(得分:1)
使用.NET Framework中已有的类
非常简单 Path class有一个方法GetFileName
,如果它不是真正的文件名而只是一个文件夹,它也会占用路径名的最后一部分....
string filePath = @"F:\first_folder\Node3_V_1.3";
string lastFolder = Path.GetFileName(filePath);
Console.WriteLine(lastFolder);
现在,如果您的lastFolder
通常由三部分组成(IE,软件,每个版本的V,最后是版本号),您可以使用String class的拆分方法来划分lastFolder
1}}分三部分
string[] parts = lastFolder.Split('_');
Console.WriteLine("Upgrading {0} to version {1}", parts[0], parts[2]);
如果您使用C#6.0,您还可以使用string interpolation和
编写最后一个语句Console.WriteLine($"Upgrading {parts[0]} to version {parts[2]}");
答案 2 :(得分:0)
这适用于您提供的示例文件夹路径
private void version_check_Click(object sender, EventArgs e)
{
string version = "F:\\first_folder\\Node3_V_1.3";
var result = version.Substring(version.LastIndexOf('\\') + 1);
string[] splitString = result.Split('_').ToArray();
MessageBox.Show("upgrading "+ splitString[0] + " to version" + splitString[2]);
}