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中。太奇怪了。
答案 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"