C# 函数未运行并正在创建文本文件

C# 函数未运行并正在创建文本文件,c#,visual-studio,file,streamwriter,C#,Visual Studio,File,Streamwriter,我创建了函数pro: 它包含进程数组 它调用另一个write函数生成文件并写入其中 写入函数writeproc: 它检查指定路径上的文件是否存在 如果没有,则生成文件,否则将文本追加到文件中 当我运行代码时,它没有做任何事情( 这是我在c#中制作的控制台应用程序的主要方法 pro功能: static void pro() { Process[] localAll = Process.GetProcesses(); String path_pro

我创建了函数pro

  • 它包含进程数组
  • 它调用另一个write函数生成文件并写入其中
写入函数writeproc

  • 它检查指定路径上的文件是否存在
  • 如果没有,则生成文件,否则将文本追加到文件中
当我运行代码时,它没有做任何事情( 这是我在c#中制作的控制台应用程序的主要方法

pro功能:

static void pro()
    {

        Process[] localAll = Process.GetProcesses();
        String path_pro = "C://KEYLOGS//processes.txt";
        foreach(Process proc in localAll)
        {
            writeproc(path_pro, proc);
        }
    }
static void writeproc(String p, Process the_process)
    {
        if (!File.Exists(p))
        {
            using (StreamWriter sw = File.CreateText(p))
            {
                //empty file generated.
            }
        }
        else
        {
            using (StreamWriter sw = File.AppendText(p))
            {
                sw.WriteLine("Process: "+the_process);
            }
        }
    }
writeproc函数:

static void pro()
    {

        Process[] localAll = Process.GetProcesses();
        String path_pro = "C://KEYLOGS//processes.txt";
        foreach(Process proc in localAll)
        {
            writeproc(path_pro, proc);
        }
    }
static void writeproc(String p, Process the_process)
    {
        if (!File.Exists(p))
        {
            using (StreamWriter sw = File.CreateText(p))
            {
                //empty file generated.
            }
        }
        else
        {
            using (StreamWriter sw = File.AppendText(p))
            {
                sw.WriteLine("Process: "+the_process);
            }
        }
    }

这可能是两个不同的原因

1:您的C驱动器上不存在该文件夹,因此无法创建该文件。(它将抛出
System.IO.DirectoryNotFoundException
) 将
Directory.CreateDirectory(p);
添加到writeproc方法的开头

2:您没有足够的权限写入C驱动器。(它将抛出一个
系统。UnauthorizedAccessException


我建议在writeproc方法中添加一个断点,以查看引发了什么异常。

您是否以管理员身份运行它?靠近根目录
C:
的文件可能会受到保护。其他函数可以将文件写入C:目录,但只有此函数没有执行任何操作。您可以找到其他函数吗工作函数与此函数之间的差异?是的,这些函数包含两个参数作为字符串,但此函数包含一个字符串路径,另一个作为进程。您是否检查了
localAll
是否为空?或者他的
pro
函数中的
localAll
是否为空empty@Rafalon,是的,理论上是可能的我不知道
Process.getprocesss()时的情况
结果是一个空数组。它确实起作用了,谢谢。但我仍然没有得到它。我已经创建了目录,那么为什么我需要再次创建它?好吧,如果目录不存在,该方法将创建该目录。如果它存在,它将只返回现有目录的DirectoryInfo。因此,在al之后,该目录似乎不存在L