在实际选择文件之前读取C#中的文本文件
我正在编写一个程序,它强烈依赖于目录(这是一个简单的游戏地图生成器) 问题是,在制作地图之前,你必须选择一个模板,你可以使用它。这是通过在“Templates”目录中获取目录列表,并将它们转换为一个数组来完成的,该数组随后被传输到ComboBox中。然后,如果在文件夹中我们得到一个特定的文件,它被加载,并且来自它的值被放入文本框中 比如说:“Program\Templates\SelectedTemplate\configfile.txt” 遗憾的是,由于列表默认为空,当我试图编译程序时,它会给我一个“DirectoryNotFoundException”,因为他正在寻找一个尚不存在的目录,如: “程序\模板\配置文件.txt” 我试图通过选择一个肯定存在的默认值,甚至通过首先检查函数中是否存在该文件来阻止它。这根本没有帮助在实际选择文件之前读取C#中的文本文件,c#,exception,directory,C#,Exception,Directory,我正在编写一个程序,它强烈依赖于目录(这是一个简单的游戏地图生成器) 问题是,在制作地图之前,你必须选择一个模板,你可以使用它。这是通过在“Templates”目录中获取目录列表,并将它们转换为一个数组来完成的,该数组随后被传输到ComboBox中。然后,如果在文件夹中我们得到一个特定的文件,它被加载,并且来自它的值被放入文本框中 比如说:“Program\Templates\SelectedTemplate\configfile.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?