我有这样的代码,无法理解错误在哪里,尽管事实上,这个代码很容易.这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
因为String.Remove
方法返回一个新字符串.它不会改变原来的.
返回一个新字符串,其中删除了从指定位置开始的当前实例中指定数量的字符.
请记住,字符串是不可变类型.你无法改变它们.即使你认为你改变它们,你实际上创建了新的字符串对象.
你可以自己分配;
Gen_ParamFile = Gen_ParamFile.Remove(0, Length);
作为替代方案,您可以使用String.SubString
类似的方法;
Gen_ParamFile = Gen_ParamFile.SubString(Length);
确实如此,它不会影响实际的字符串,因此会创建一个新的字符串.使用:
Gen_ParamFile = Gen_ParamFile.Remove(0, Length);