繁体   English   中英

修剪文件名以获取变量

[英]Trimming File name to get Variables

我想知道修剪文件名以获取特定变量的最佳方法是什么。 例如,文件名是:

5000 + 10-08-2018_Image2.jpg

我想要的是将5000和10-08-2018分开,所以我这样做了:

 string input = file.Name;
 int index = input.IndexOf("_");
 if (index > 0)
    input = input.Substring(0, index);
 string newInterval = input;

我得到“ 5000 + 2018-02-05”。 我如何下一步将这些值分开。 我已经试过了:

     string input = file.Name;
     string input2 = file.Name;
     int indexInterval = input.IndexOf("+");
     int indexDate = input2.IndexOf("_");
     if (indexInterval > 0)
        input = input.Substring(0, indexInterval);
     if (indexDate > 0)
        input2 = input2.Substring(0, indexDate);
     string newInterval = input;
     string newDate = input2;

我得到“ 5000”和“ 5000 + 10-08-2018”。

我是C#ASP.NET编码的新手,所以将不胜感激。 谢谢。

我首先使用Path.GetFileNameWithoutExtension ,然后使用IndexOf + Remove

string fn = Path.GetFileNameWithoutExtension(file.Name);
int plusIndex = fn.IndexOf('+');
if(plusIndex > -1)
{
   string beforePlus = fn.Remove(plusIndex); 
}

您应该尝试从indexInterval到indexDate获取子字符串。

    string input = file.Name;
    string input2 = file.Name;
    int indexInterval = input.IndexOf("+");
    int indexDate = input2.IndexOf("_");
    if (indexInterval > 0)
        input = input.Substring(0, indexInterval);

    if (indexDate > 0)
        input2 = input2.Substring(indexInterval + 1, indexDate - indexInterval - 1);

    string newInterval = input;
    string newDate = input2;

您可以在指定的分隔符上拆分字符串。

string fileName = "5000+10-08-2018_Image2.jpg";
string[] underscoreParts = fileName.Split(new char[] { '_' });
if (underscoreParts.Length > 0)
{
    string[] plusParts = underscoreParts[0].Split(new char[] { '+' });
    Console.WriteLine($"{plusParts[0]}\n{plusParts[1]}");
}

返回:

5000
10-08-2018

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM