如何使用IF(File.Exists)语句判断文件存在性并实现窗口跳转?
修复你的文件存在判断代码
看起来你的代码有几个语法和逻辑上的小问题,导致它只部分生效,我来帮你逐个解决:
语法错误1:if语句缺少闭合括号
你的if(File.Exists(FilePath)后面少了一个),这会直接导致编译失败,C#要求条件表达式必须用括号完整包裹。语法错误2:Else的大小写错误
C#是大小写敏感的语言,关键字else必须全小写,你写的Else会被编译器识别为自定义标识符,而非条件分支的关键字。语法错误3:中文引号
MessageBox.Show(“Account Does Not Exist”)里用了中文双引号,C#只支持英文双引号"",这也会引发编译报错。逻辑问题:路径不完整
你直接把输入框的文本作为文件路径,但实际上你要判断的是Accounts文件夹里的txt文件,所以需要拼接文件夹路径和文件名后缀——否则程序会在当前工作目录寻找以输入文本命名的文件,而非Accounts文件夹内的目标txt文件,这大概率是“部分生效”的核心原因。
修正后的完整代码
// 拼接完整的文件路径:Accounts文件夹 + 用户名 + .txt后缀 string filePath = Path.Combine("Accounts", $"{UsernameTextBox.Text}.txt"); if (File.Exists(filePath)) { Welcome openForm = new Welcome(); openForm.Show(); } else { MessageBox.Show("Account Does Not Exist"); }
额外说明
- 用
Path.Combine拼接路径是C#的最佳实践,它会自动适配不同操作系统的路径分隔符(比如Windows的\和Linux的/)。 - 变量名采用了C#通用的驼峰命名法(
filePath而非FilePath),能提升代码的可读性和规范性。 - 确保
Accounts文件夹存在于程序的工作目录中;如果需要使用绝对路径,可以写成Path.Combine(@"C:\YourAppRoot\Accounts", $"{UsernameTextBox.Text}.txt")这种形式。
内容的提问来源于stack exchange,提问作者TomFarmer32
相关产品推荐
相关产品推荐

