使用 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 中有一个文件夹用于您的文本文件,我认为您将其设为您的文本文件,您将其设为身份验证设置兄弟
我正在尝试使用 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 中有一个文件夹用于您的文本文件,我认为您将其设为您的文本文件,您将其设为身份验证设置兄弟