C# 函数未运行并正在创建文本文件
我创建了函数pro: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
- 它包含进程数组
- 它调用另一个write函数生成文件并写入其中
- 它检查指定路径上的文件是否存在
- 如果没有,则生成文件,否则将文本追加到文件中
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