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

C#用于正确/错误文件路径的试错法

C#用于正确/错误文件路径的试错法,c#,.net,C#,.net,我正在使用VS2005(.net版本>2.0+)创建windows应用程序。 在我的应用程序中,我给出了访问文件的相对路径。 该文件可能存在于任何已知文件夹(例如2个)images1、images2中,我需要使用一些if条件和bool变量检查哪个文件路径正确,哪个不正确。因此,我需要在表单中指向并加载该图像 如何执行此操作?您正在查找路径。组合和文件。存在方法 使用LINQ: var actualPath = possiblePaths.Select(p => Path.Combine(p

我正在使用VS2005(.net版本>2.0+)创建windows应用程序。
在我的应用程序中,我给出了访问文件的相对路径。 该文件可能存在于任何已知文件夹(例如2个)images1、images2中,我需要使用一些if条件和bool变量检查哪个文件路径正确,哪个不正确。因此,我需要在表单中指向并加载该图像


如何执行此操作?

您正在查找
路径。组合
文件。存在
方法

使用LINQ:

var actualPath = possiblePaths.Select(p => Path.Combine(p, relativePath))
                              .FirstOrDefault(File.Exists);

您正在查找
路径.Combine
文件.Exists
方法

使用LINQ:

var actualPath = possiblePaths.Select(p => Path.Combine(p, relativePath))
                              .FirstOrDefault(File.Exists);

我感觉这与 请阅读回复


试错法将被证明是昂贵的

我感觉这与 请阅读回复


试错法将被证明是昂贵的

您可以使用System.IO.file.Exists(字符串路径)方法检查文件是否存在。如果有用的话,还有一个等效的System.IO.Directory.Exists(字符串路径)

请参阅以下评论:

=======================================================================

还提供了一种方法,通过该方法可以根据配置有条件地编译代码。例如,类似这样的内容将为您提供一种具有“调试”构建的行为,以及一种具有“发布”(任何非调试)构建的不同类型的行为:


您可以使用System.IO.file.Exists(字符串路径)方法检查文件是否存在。如果有用的话,还有一个等效的System.IO.Directory.Exists(字符串路径)

请参阅以下评论:

=======================================================================

还提供了一种方法,通过该方法可以根据配置有条件地编译代码。例如,类似这样的内容将为您提供一种具有“调试”构建的行为,以及一种具有“发布”(任何非调试)构建的不同类型的行为:


只需在提供路径和文件名的位置使用,如果返回true,文件就在那里。

只需在提供路径和文件名的位置使用,如果返回true,文件就在那里。

您可能需要使用。同时使用它,您可以遍历文件系统并从您可能需要使用的适当位置加载适当的文件。与此一起使用,您可以遍历文件系统并从适当的位置加载适当的文件

LINQ在.Net 2.0中不可用,是吗?您是对的;我没听到那句话。如果
,您需要将其转换为一个
for
循环,并使用
。LINQ在.NET2.0中不可用,是吗?您是对的;我没听到那句话。您需要将其转换为
for
循环,如果
。是。。这是那个问题的续集。顺便提一下如何处理调试/发布模式。。是否提供相同的文件路径(相对路径)?因此得出结论,使用试错法,如果我在第一次尝试中没有获得正确的文件路径(假设我在调试文件夹中),我会访问父文件夹,然后依次指向所需的文件:)关键在于打包应用程序。在生成后创建文件夹。我已经更新了原始答案。我有一个奇怪的要求,我必须澄清,我的主要目的不是发布/部署项目,而是能够在调试和发布模式下运行(打开解决方案)@baby程序员:你熟悉预处理器指令吗?我不知道这对你的情况是否有帮助,但你可以做一些像#如果调试<适用于调试生成>的代码#否则<适用于非调试生成>#endif,并且仅根据配置处理适用的代码。(我不知道如何设置评论的格式,所以如果这很难理解,我很抱歉)@Steven,嘿,这太不可思议了,我明白你的确切意思了:)我想我可以根据#如果条件:))为变量指定合适的路径)好的。。我就试试看:)是的。。这是那个问题的续集。顺便提一下如何处理调试/发布模式。。是否提供相同的文件路径(相对路径)?因此得出结论,使用试错法,如果我在第一次尝试中没有获得正确的文件路径(假设我在调试文件夹中),我会访问父文件夹,然后依次指向所需的文件:)关键在于打包应用程序。在生成后创建文件夹。我已经更新了原始答案。我有一个奇怪的要求,我必须澄清,我的主要目的不是发布/部署项目,而是能够在调试和发布模式下运行(打开解决方案)@baby程序员:你熟悉预处理器指令吗?我不知道这对你的情况是否有帮助,但你可以做一些像#如果调试<适用于调试生成>的代码#否则<适用于非调试生成>#endif,并且仅根据配置处理适用的代码。(我不知道如何设置评论的格式,所以如果这很难理解,我很抱歉)@Steven,嘿,这太不可思议了,我明白你的确切意思了:)我想我可以根据#如果条件:))为变量指定合适的路径)好的。。我会试试看:)好:)谢谢:)我会利用你的宝贵建议。:)好:)谢谢:)我会利用你的宝贵建议。:)
foreach (string folder in folders)
  if (File.Exist(folder + filename)
     dosomething