Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 修改路径(字符串)_C#_String_Properties_Replace - Fatal编程技术网

C# 修改路径(字符串)

C# 修改路径(字符串),c#,string,properties,replace,C#,String,Properties,Replace,我希望我的程序能够从相关目录中获取信息,从文本文件中获取信息,以提高健壮性 这就是我的方法: public void GetPath() { var directory = Directory.GetCurrentDirectory(); hs.Path = directory.Replace(@"\\EventDriven\\bin\\Debug", hs.ReplacePath); } 这是相关的属性和字符串(我知道我可以一次性声明它们): (如您所见,最初路径是硬编码的)

我希望我的程序能够从相关目录中获取信息,从文本文件中获取信息,以提高健壮性

这就是我的方法:

public void GetPath()
{
    var directory = Directory.GetCurrentDirectory();
    hs.Path = directory.Replace(@"\\EventDriven\\bin\\Debug", hs.ReplacePath);
}
这是相关的属性和字符串(我知道我可以一次性声明它们):

(如您所见,最初路径是硬编码的)

这是我在尝试替换任何路径之前得到的路径:

"E:\\Work\\To do\\QA\\program_storage\\program_storage\\bin\\Debug"
这是AccountDatbabase.txt文件所在的目录:

E:\Work\To do\QA\program_storage\Data
因此,它应该尝试访问的最终目录是:

E:\Work\To do\QA\program_storage\Data\AccountDatabase.txt
似乎存储在(hs.)路径中的是

尽管使用了替换

我希望该程序在多台windows计算机上运行。我想我所做的get set属性可能有问题(我知道我可以从中删除它),但这应该会抛出一个错误?我可能没有正确使用replace


感谢您提供的一切帮助!(请不要再次删除此感谢邮件)

将app.config文件添加到应用程序中

向该文件添加
appSettings
部分,并添加包含文件路径的密钥


需要路径时,请调用
ConfigurationManager.AppSettings[“您使用的密钥名”]
以获取路径。

为什么要对路径进行硬编码,即使只是将部分路径硬编码到应用程序中?为什么不添加一个配置文件或将测试数据移动到应用程序根目录中?@SimonHalsey感谢您的评论。我正试图做相反的事情,它是硬编码的,我正试图避免它被硬编码。想详细说明一下吗(我是个程序员新手)?谢谢你的帮助time@chrfin这是一个不同的问题,我没有使用提供的内容,因为它与我要求的内容完全不同。您可以尝试使用Environment.SpecialFolder。有很多目录供您使用。@user3245390:这是一个不同的问题,但解决方案仍然是一样的。如果您想解决“替换问题”,请重新表述您的问题…如果这样做,则无需“手动劳动”:只需通过项目属性添加一个设置文件,然后通过
project.properties.Settings.Default.KEY
使用它,但根据OP的评论,这并不是他/她真正想要解决的问题……这与他/她想要解决的问题是一样的,只是稍微强一点的打字,但也是正确的
,但是稍微强一点的打字
——这就是重点。如果密钥被重命名,“硬编码字符串”将构建良好,但在运行时崩溃。使用设置编辑器而不是手动编辑app.config也不太容易,特别是对于初学者来说……我知道我们在吹毛求疵,但在这两种情况下都存在重命名密钥的风险。每种方法实际上也没有多大的工作量-大致相同的鼠标点击和按键次数。我的主要观点是,如果重命名并在运行时崩溃,您的解决方案将构建良好,但另一个解决方案将在构建时失败。在我看来,这是一个明确的好处——剩下的只是舒适,可以通过任何一种方式完成。。。
E:\Work\To do\QA\program_storage\Data\AccountDatabase.txt
"E:\\Work\\To do\\QA\\program_storage\\program_storage\\bin\\Debug"