You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:06:00