在Windows 10计算机中未处理C#DirectoryNotFoundException

时间:2016-11-06 04:52:58

标签: c# winforms

C#application.exe在Win10中不起作用,但它在我的Win7上运行。我尝试在Win10中调试它向我显示这个错误,这在win7中是正确的。

using System;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        string fullComputerName = Environment.MachineName;

        //Create a Folder Path
        string createFolderPath = @"C:\\Users\\" +fullComputerName+"\\Documents\\Cheques";

        //Create a File Inside of a Folder
        string createTxtFile= createFolderPath + "\\ChequeForDeposit.TXT";

        try
        {
            if(!Directory.Exists(createFolderPath))
            { return; }
            Directory.CreateDirectory(createFolderPath);
        }
        catch { }
        finally { }

        if(!File.Exists(createTxtFile))
        { File.Create(createTxtFile); }//The error is here
    }
}
}

当我签入我的win7电脑时,它会创建一个文件夹和一个文本文件。但不是在Win10中。太奇怪了。

2 个答案:

答案 0 :(得分:0)

您的try / catch不能确保目录文件夹存在(当您尝试创建文件夹时可能会生成异常)。因此,在创建文件之前,请立即检查文件夹是否存在。 你的病情不正确。如果文件夹不存在则应返回,否则创建。

 try
 {
  if(Directory.Exists(createFolderPath) && !File.Exists(createTxtFile))
    { 
       File.Create(createTxtFile);   
    }
}

同时检查权限问题。例如检查桌面文件夹的权限。在Windows资源管理器中右键单击桌面文件夹,选择属性,然后转到安全选项卡。您应该拥有该文件夹的写入权限。

答案 1 :(得分:0)

我认为文件夹C:\ Users \是受保护的系统文件夹的设计。您必须以管理员身份运行或在其他驱动器中创建文件,例如:

@"D:\Users\" +fullComputerName+"\Documents\Cheques"