【问题标题】:How do i properly remove letters from my string?如何正确删除字符串中的字母?
【发布时间】:2016-04-10 18:23:10
【问题描述】:

我正在尝试获取我的 xml 文件的路径。我有一个带有.exe 文件的字符串:

string exe_location = System.Reflection.Assembly.GetExecutingAssembly().Location;

和另一个包含结果的字符串:

string xml_location = exe_location.Remove(exe_location.Length, -11);

我在运行代码的时候,调试器突然说:“Count 不能小于零。\r\n参数名:count

我不确定我是如何在这个简单的任务中失败的。有任何想法吗?

【问题讨论】:

    标签: c# xml path visual-studio-2015


    【解决方案1】:

    正如怪人所说,“删除”功能是问题所在(长度大于 11,长度 -11 给你一个负数)。但是,如果您想从 exe 程序集位置获取 EXE 文件的路径,您可以使用以下代码:

    path = IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
    

    【讨论】:

    • 我只能使用System.Reflection.Assembly.GetExecutingAssembly().Location; 来获取.exe 我的问题是获取xml 的路径
    • @jjm 是的,“GetDirectoryName”函数只给你目录,没有exe的名称。从“C:\your_folder\yourexe.exe”到“C:\you_folder”。我认为这就是您使用“删除”的目的。
    • 哦。我没注意到。你解决了。非常感谢!
    【解决方案2】:

    Remove() 的第二个参数是要删除的字符数。第一个参数是开始删除的索引。如果你想删除你需要的最后 11 个字符。

    Remove(exe_location.Length - 11, 11)
    

    【讨论】:

    • 我将string xml_location = exe_location.Remove(exe_location.Length, -11); 更改为string xml_location = exe_location.Remove(exe_location.Length - 11, 11);,但没有任何改变。 (我没有收到错误,但数字也没有改变。
    猜你喜欢
    • 2020-12-08
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 2017-09-06
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多