Im在文件對話框中選擇文件時,我的程序掛起時遇到了一些麻煩。這是顯示文件瀏覽器對話框的代碼:我已經收窄的問題倒在「如果」語句和之間掛在DialogResult.OK上的應用程序
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;
}
「返回字符串= minecraftFile.FileName;」 ..使用調試器時,程序需要在這兩條線之間休息五秒鐘。在休息之後,它返回並返回值,就像沒有錯誤一樣。但是,即使程序從不向我顯示任何錯誤消息,IntelliTrace有時也會出現「FileNotFound異常」,並將正確的值返回到文本框中。
奇怪的是,它並不總是發生這種情況。它是隨機的,即使我選擇與上次相同的文件也可能發生。我選擇的文件也是系統驅動器上的本地文件。
什麼可能是錯的?代碼看起來應該如何?
最後一個:'if(minecraftFile.ShowDialog()== DialogResult.OK){' –
您在本地磁盤上瀏覽的是文件/目錄嗎? – codemonkeh
是的文件是前面陳述的本地文件 –