我有这样的代码并且无法理解错误在哪里,尽管事实上,这个代码非常简单。因此q
是完整路径,我需要获得Gen_ParamFile
string q = @"C:\ProgramData\RadiolocationQ\script-Data=12^6-12^33.xml";
string _directoryName1 = @"C:\ProgramData\RadiolocationQ";
int Length = _directoryName1.Length + "ascript".Length;
string Gen_ParamFile = q;
Gen_ParamFile.Remove(0, Length); // this line don't do anything
var Gen_Parfile = Path.Combine(_directoryName1, "GeneralParam-Data" + Gen_ParamFile);
我使用了像http://msdn.microsoft.com/ru-ru/library/9ad138yc(v=vs.110).aspx
这样的功能答案 0 :(得分:10)
确实如此,它不会影响实际的字符串,因此会创建一个新的字符串。使用:
Gen_ParamFile = Gen_ParamFile.Remove(0, Length);
答案 1 :(得分:6)
因为String.Remove
方法返回一个新字符串。它不会改变原来的。
返回一个新字符串,其中包含指定数量的字符 从指定位置开始的当前实例已被删除。
请记住,字符串是 immutable types 。你无法改变它们。即使你认为你改变它们,你实际上也会创建新的字符串对象。
你可以自己分配;
Gen_ParamFile = Gen_ParamFile.Remove(0, Length);
作为替代方案,您可以使用String.SubString
方法;
Gen_ParamFile = Gen_ParamFile.SubString(Length);
答案 2 :(得分:2)
你可以使用
Gen_ParamFile = Gen_ParamFile.Remove(0,Length);
除此之外,您还可以使用
String.Substring方法根据您的要求