파일 대화 상자에서 파일을 선택할 때 내 프로그램이 멈추는 문제가 있습니다. "반환 문자열 = minecraftFile.FileName,"나는 "만약"문과 사이에 아래로 문제가 좁혀했습니다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;
}
:이 파일 브라우저 대화 상자를 보여주는 코드입니다 .. 디버거를 사용할 때 프로그램은 두 줄 사이에 5 초의 휴식을 취합니다. 휴식 후에 다시 돌아오고 아무 잘못이없는 것처럼 값을 반환합니다. 그러나 IntelliTrace는 프로그램에서 절대로 오류 메시지를 표시하지 않더라도 "FileNotFound Exception"을 표시하고 올바른 값을 텍스트 상자에 반환합니다.
wierd 부분은 항상 이런 일이 발생하지 않는다는 것입니다. 랜덤이며 마지막으로 동일한 파일을 선택하더라도 발생할 수 있습니다. 내가 선택한 파일은 시스템 드라이브의 로컬 파일입니다.
무엇이 잘못 될 수 있습니까? 코드가 정상적으로 보입니까?
마지막 :'if (minecraftFile.ShowDialog() == DialogResult.OK) {' –
탐색중인 파일/디렉토리가 로컬 디스크에 있습니까? – codemonkeh
예 파일은 앞에서 설명한대로 로컬 파일입니다. –