使用 system.io 创建一个 TXT 文件并将其保存到磁盘 C:,但访问被拒绝

Creating a TXT file and saving it onto DISK C: using system.io , but access is denied

我正在尝试使用 system.io 创建一个 TXT 文件,我输入了文件路径,但每次我 运行 我的访问都被拒绝,我访问每个文件夹我 C:,在DISK D:everything 很好,是否有解决方案,我的意思是,我可以在代码中以某种方式访问​​它吗?

我使用的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Windows.Forms;
using System.IO;

namespace KeyLoggerA1
{
    class Program
    {
        private static int WH_KEYBOARD_LL = 13; //hook procedure type , monitoring low-level keyboard input events
        private static int WM_KEYDOWN = 0x0100;
        private static IntPtr hook = IntPtr.Zero;
        private static LowLevelKeyboardProc llkProcedure = HookCallback;



        static void Main(string[] args)
        {
            string filePath = @"C:\Program Files\Test.txt";

            if (!File.Exists(filePath))
            {
                using (StreamWriter sw = File.CreateText(filePath))
                {
                    sw.WriteLine("test");
                }
            }

我遇到的错误:

未处理的异常:System.UnauthorizedAccessException:拒绝访问路径 'C:\Program Files\Test.txt'。 ... 在 System.IO.File.CreateText(字符串路径) 在 KeyLoggerA1.Program.Main(String[] args) 在 C:\Users\mirer\source\repos\ConsoleApp2\ConsoleApp2\Program.cs:line 28

如果有人能提供帮助,我们将不胜感激

确保使用 System.IO.Path.Combine(),因为这是连接文件路径的正确方法。

现在回答你的问题,这是完全正常的。您只需提升程序(运行 作为管理员)即可访问该文件夹。 如果您想检查程序当前是否 运行 作为管理员,check this out, and this

该程序没有适当的权限写入您的目的地。尝试 运行 以管理员身份运行该程序或保存到其他位置(我知道您正在尝试保存到程序文件,因此您可能无法保存到其他位置)

我认为如果在 c 中有一个文件夹用于您的文本文件,我认为您将其设为您的文本文件,您将其设为身份验证设置兄弟