我目前获得的用户数字如下:
if (checkBox1.Checked)
{
rchars = numericUpDown1.Value.ToString();
}
else
{
rchars = "3";
}
string rchars;是一个全局变量。
所以,我试图从文件名中删除rchars。 例如,文件名中的前三个字符:
int num = Int32.Parse(rchars);
foreach (FileInfo name in fpaths.GetFiles("*.mp3")
{
string snub = name.Name.Substring(num);
MessageBox.Show(snub);
System.IO.File.Move(blah + name.Name, newblah + snub);
}
我的问题是如何获得" num"在子字符串中工作?因为我不能把它变成一个价值。因为我想从numericUpDown传递它。添加make" num"一个值,所以我可以从文件名中删除该值。
感谢。
答案 0 :(得分:2)
NumericUpDown的Value属性是Decimal - 这可能就是您遇到问题的原因。在if块中,我会考虑将NumericUpDown对象的Value属性转换为true部分中的整数,并在其else部分中使用整数值3。之后,我会避免再次解析并按原样将其提供给Substring。
答案 1 :(得分:1)
您说要从rchars
删除所有name
,所以为什么要使用Substring
?如果您要从string rchars
中删除name
,请将其保留为字符串并使用String.Replace
:
string snub = name.Name.Replace( rchars, String.Empty );
此外,Value
的{{1}}属性为NumericUpDown
,而不是decimal
。
答案 2 :(得分:0)
您是否希望将文件名中的值“3”替换为其他/删除它?像这样:
原始档案:
string fiename = "myfile3.mp3";
删除/替换所选号码(在本例中为3):
string num = "3";
filename.replace(num, "");
应该以文件名“myfile.mp3”
结束