Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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# - Fatal编程技术网

C# 如何从默认位置而不是通过硬编码选择文件?

C# 如何从默认位置而不是通过硬编码选择文件?,c#,C#,我希望从默认位置(如bin文件夹(project的exe文件所在的位置)选择XHTML dtd文件,而不是通过提供文件的确切路径(如C:\temp\xhtml1.dtd)对其进行硬编码。我的代码是C。 有人能帮忙吗?我想这可能就是你想要的 string xhtml = Directory.GetCurrentDirectory()+"xhtml1.dtd"; 我想这可能是你想要的 string xhtml = Directory.GetCurrentDirectory()+"xhtml1.dt

我希望从默认位置(如bin文件夹(project的exe文件所在的位置)选择XHTML dtd文件,而不是通过提供文件的确切路径(如C:\temp\xhtml1.dtd)对其进行硬编码。我的代码是C。
有人能帮忙吗?

我想这可能就是你想要的

string xhtml = Directory.GetCurrentDirectory()+"xhtml1.dtd";

我想这可能是你想要的

string xhtml = Directory.GetCurrentDirectory()+"xhtml1.dtd";

一种选择是使用应用程序库:

string path = Path.Combine(
            AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
            "foo.dtd");

一种选择是使用应用程序库:

string path = Path.Combine(
            AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
            "foo.dtd");

这将给出工作目录,它可以是不同的(并且在运行时可以更改),我使用的不是字符串,而是uri。我怎样才能对uri做同样的事情呢?这将给出工作目录,它可以是不同的(并且在运行时可以更改),我使用的不是字符串,而是uri。我怎样才能对uri做同样的事情呢?我使用的是uri而不是字符串,那么它的语法是什么呢?如果你的uri是这样的uri u=newURI(“dtds/foo.dtd”),你可以用u.ToString()替换@Marc答案中的“foo.dtd”字符串。注意:您应该使用相对Uri作为AppDomain.CurrentDomain.SetupInformation.ApplicationBase将返回绝对路径。对不起,在我最后一条评论中使用u.ToString()将给出有趣的字符串,如C:\temp\test\bin\dtds/foo.dtd。您应该尝试path.combid(AppDomain….,string.Join(@“\”,u.Segments))我使用的是Uri,而不是字符串,那么它的语法是什么呢?如果你的Uri是这样的Uri u=newURI(“dtds/foo.dtd”),你可以用u.ToString()替换@Marc答案中的“foo.dtd”字符串。注意:您应该使用相对Uri作为AppDomain.CurrentDomain.SetupInformation.ApplicationBase将返回绝对路径。抱歉,在我最后一条注释中使用u.ToString()将给出有趣的字符串,如C:\temp\test\bin\dtds/foo.dtd。您应该尝试path.combid(AppDomain….,string.Join(@“\”,u.Segments))(重新注释)-如果您使用的是Uri,为什么在问题中给出一个使用文件路径的示例?这里的实际设置是什么?它是一个网络应用程序吗?ClickOnce应用程序?什么?(重新评论)-如果您使用的是uri,为什么要在问题中给出一个使用文件路径的示例?这里的实际设置是什么?它是一个网络应用程序吗?ClickOnce应用程序?什么?