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

在实际选择文件之前读取C#中的文本文件

在实际选择文件之前读取C#中的文本文件,c#,exception,directory,C#,Exception,Directory,我正在编写一个程序,它强烈依赖于目录(这是一个简单的游戏地图生成器) 问题是,在制作地图之前,你必须选择一个模板,你可以使用它。这是通过在“Templates”目录中获取目录列表,并将它们转换为一个数组来完成的,该数组随后被传输到ComboBox中。然后,如果在文件夹中我们得到一个特定的文件,它被加载,并且来自它的值被放入文本框中 比如说:“Program\Templates\SelectedTemplate\configfile.txt” 遗憾的是,由于列表默认为空,当我试图编译程序时,它会给

我正在编写一个程序,它强烈依赖于目录(这是一个简单的游戏地图生成器)

问题是,在制作地图之前,你必须选择一个模板,你可以使用它。这是通过在“Templates”目录中获取目录列表,并将它们转换为一个数组来完成的,该数组随后被传输到ComboBox中。然后,如果在文件夹中我们得到一个特定的文件,它被加载,并且来自它的值被放入文本框中

比如说:“Program\Templates\SelectedTemplate\configfile.txt”

遗憾的是,由于列表默认为空,当我试图编译程序时,它会给我一个“DirectoryNotFoundException”,因为他正在寻找一个尚不存在的目录,如:

“程序\模板\配置文件.txt”

我试图通过选择一个肯定存在的默认值,甚至通过首先检查函数中是否存在该文件来阻止它。这根本没有帮助


有什么建议可以解决吗?如何防止“DirectoryNotFoundException”应用程序在尚未加载的函数中崩溃?

不清楚您到底想做什么。编译程序时,程序生成错误是毫无意义的。我想你是说当你运行它的时候

如果您发布相关的代码块,也会有所帮助。 您如何检查文件是否存在?如果文件的路径包含尚不存在的目录名,则会引发异常


您可以始终将代码包装在Try/Catch块中,并测试该特定错误,这样您的应用程序就不会崩溃。

不清楚您到底想做什么。编译程序时,程序生成错误是毫无意义的。我想你是说当你运行它的时候

如果您发布相关的代码块,也会有所帮助。 您如何检查文件是否存在?如果文件的路径包含尚不存在的目录名,则会引发异常


您可以始终将代码包装在Try/Catch块中,并测试该特定错误,这样您的应用程序就不会崩溃。

检查目录,如果目录不存在,则创建它。然后创建一个空白文件作为占位符,直到稍后

if (!File.Exists(@"Program\Templates\SelectedTemplate\"))
{
    Directory.CreateDirectory(@"Program\Templates\SelectedTemplate\");

    if (!File.Exists(@"Program\Templates\SelectedTemplate\configfile.txt"))
    {
        using (File.Create(@"Program\Templates\SelectedTemplate\configfile.txt")) ;
    }
}

或者类似的方法可以消除您的错误。

检查目录,如果不存在,则创建它。然后创建一个空白文件作为占位符,直到稍后

if (!File.Exists(@"Program\Templates\SelectedTemplate\"))
{
    Directory.CreateDirectory(@"Program\Templates\SelectedTemplate\");

    if (!File.Exists(@"Program\Templates\SelectedTemplate\configfile.txt"))
    {
        using (File.Create(@"Program\Templates\SelectedTemplate\configfile.txt")) ;
    }
}

或者类似的方法可以消除您的错误。

您可以使用
Directory.Exists(“Program\Templates\SelectedTemplate\”)
检查目录是否存在,并为用户添加一些UI以创建该目录,甚至在其中创建新模板


或者,如果您只是需要它来填充组合框,请使用
try…catch
在用文件名填充数组时,捕获
DirectoryNotFoundException
并用空数组初始化数组。

您可以使用
Directory.Exists(“程序\模板\选定模板\”)
检查目录是否存在,并为用户添加一些UI以创建该目录,甚至在其中添加新模板


或者,如果您只是需要它来填充组合框,请使用
try…catch
在用文件名填充数组时,捕获
DirectoryNotFoundException
并用空数组初始化数组。

请发布一些代码我不明白您的问题是在编译还是在运行时崩溃。。,我不理解你描述的问题。密码?您是否尝试过捕获DirectoryNotFoundException?请发布一些代码我不明白您的问题是在编译还是在运行时崩溃……我不理解您描述的问题。密码?您是否尝试过捕获DirectoryNotFoundException?