如果文件存在于c#中,请通过递归方法重试三次
有人能通过递归方法提供解决方案来帮助我吗 我的要求是我想要一个递归方法,需要运行以下代码三次: 下面是我的C#工作代码:如果文件存在于c#中,请通过递归方法重试三次,c#,asp.net,.net,asp.net-mvc,c#-4.0,C#,Asp.net,.net,Asp.net Mvc,C# 4.0,有人能通过递归方法提供解决方案来帮助我吗 我的要求是我想要一个递归方法,需要运行以下代码三次: 下面是我的C#工作代码: public void Process() { bool exists = File.Exists("C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\RevisionNumber.txt"); for(int i = 0; i < 3 && exists; i++) {
public void Process()
{
bool exists = File.Exists("C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\RevisionNumber.txt");
for(int i = 0; i < 3 && exists; i++)
{
System.Diagnostics.Process.Start("C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\SvnUninstallation.exe");
Sleep(2000); // or long enough to ensure the uninstall process finishes executing
exists = File.Exists("C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\RevisionNumber.txt");
}
Console.WriteLine(exists);
Console.ReadLine();
}
公共作废流程()
{
bool exists=File.exists(“C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\RevisionNumber.txt”);
对于(int i=0;i<3&&exists;i++)
{
System.Diagnostics.Process.Start(“C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\svnunstall.exe”);
Sleep(2000);//或足够长的时间以确保卸载过程完成执行
exists=File.exists(“C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\RevisionNumber.txt”);
}
Console.WriteLine(存在);
Console.ReadLine();
}
原始代码和for循环的作用与递归函数的作用完全相同。我不太喜欢发布这个代码。我所能想到的使用递归函数的唯一有效时间是在构建某种树结构时
您还应该注意,如果没有正确实现递归函数,并且没有中断使用递归函数可能创建的连续循环,则会遇到StackOverflow
异常,因为调用的方法被添加到堆栈中,堆栈最终会耗尽内存
以下是根据您的需要实现递归函数的一种方法:
public void Process(int count = 0)
{
bool exists = File.Exists("C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\RevisionNumber.txt");
if (exists && count < 3)
{
System.Diagnostics.Process.Start("C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\SvnUninstallation.exe");
Thread.Sleep(2000); // or long enough to ensure the uninstall process finishes executing
//File exists
Console.WriteLine("File exists");
Process(++count);
}
else
{
Console.WriteLine("Exceeded retry of 3 times. File did not uninstall.");
}
if (!exists)
Console.WriteLine("File uninstalled");
}
公共作废流程(整数计数=0)
{
bool exists=File.exists(“C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\RevisionNumber.txt”);
如果(存在且计数小于3)
{
System.Diagnostics.Process.Start(“C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\svnunstall.exe”);
Thread.Sleep(2000);//或足够长的时间,以确保卸载进程完成执行
//文件存在
WriteLine(“文件存在”);
进程(++计数);
}
其他的
{
WriteLine(“重试次数超过3次。文件未卸载”);
}
如果(!存在)
Console.WriteLine(“文件卸载”);
}
下面是递归方法的代码片段。试试看,如果你有任何疑问,请告诉我
static bool FileExists(bool _fileexists, int Count)
{
//Console.WriteLine("Inside File Check");
Count++;
System.Diagnostics.Process.Start("C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\SvnUninstallation.exe");
Thread.Sleep(2000);
return (_fileexists == false && Count <=3) ? FileExists(File.Exists("C:\\IFRToolLog1.txt"),Count) : true;
}
static bool FileExists(bool\u FileExists,int Count)
{
//Console.WriteLine(“内部文件检查”);
计数++;
System.Diagnostics.Process.Start(“C:\\Users\\sk185462\\Desktop\\SVNUPDATED\\svnunstall.exe”);
《睡眠》(2000年);
返回(_fileexists==false&&Count你能澄清一下你的问题吗,我会尽力帮助你。你想要一个递归方法,需要运行上述代码三次吗?还是想要一个递归方法,如果文件不再存在,不要继续卸载?嗨,Monstertjie_za,我想要一个需要运行上面的代码三次。嗨,Raj Kumar,但是上面的代码没有重试,对吗?它只返回true(或)false,它将重试,直到满足true条件。我们需要如何在页面加载中调用它???public static void Main(string[]args){ProcessStartInfo startInfo=new ProcessStartInfo();FileExists(bool FileExists);//布尔fileexists1;//Program.FileExists(fileexists1);}只需调用FileExists(false)最后一个帮助Raj Kumar工作正常,但是我们可以在monstertjie_za发布的下面的帖子中返回bool吗?我无法复制代码并粘贴在评论中工作!非常感谢:)但是我想在这个代码中返回bool,你能帮我吗???