在文件对话框中选择文件时,我的程序挂起时遇到了一些问题。这是显示文件浏览器对话框的代码:
private void isForgeIncluded_btn_Click(object sender, EventArgs e)
{
this.isForgeIncluded.Text = FolderFileDialog("file", isForgeIncluded.Text, "Forge installer file (*.jar)|*.jar");
}
public string FolderFileDialog(string type, string current, string fileTypes = "All files (*.*)|*.*|All files (*.*)|*.*", string StartFolder = "C:\\")
string ReturnString = current;
if (current != "")
{
StartFolder = Path.GetFullPath(current);
}
if (type == "file")
{
OpenFileDialog minecraftFile = new OpenFileDialog();
minecraftFile.Title = "Select file";
minecraftFile.InitialDirectory = StartFolder;
minecraftFile.RestoreDirectory = true;
minecraftFile.Filter = fileTypes;
if (minecraftFile.ShowDialog() == DialogResult.OK)
{
ReturnString = minecraftFile.FileName;
return ReturnString;
}
minecraftFile = null;
}
return ReturnString;
}
我已将问题缩小到“if”语句和“Return string = minecraftFile.FileName;”之间 .. 使用调试器时,程序在这两行之间最多需要五秒钟的中断。中断后,它会返回并返回值,就好像没有任何问题一样。但 IntelliTrace 有时会出现“FileNotFound 异常”,即使程序从未向我显示任何错误消息,并按应有的方式将正确的值返回到文本框。
奇怪的是,这种情况并不总是发生。它是随机的,即使我选择与上次相同的文件也可能发生。我选择的文件也是系统驱动器上的本地文件。
有什么问题?代码看起来像它应该的样子吗?