我是C#的新手,希望得到一些指导。 - 我正在编写一个程序,当xml文件被放入文件夹时执行.bat文件,然后将xml文件移动到完成目录。
问题是bat文件需要大约10秒才能运行并且需要XML文件存在于目录中,但是,我的move方法是在执行.bat文件命令后立即移动xml文件,强制执行。 bat文件本身失败。
在研究之后,Thread.Sleep或Task.Delay将是答案,因为我只想在.bat文件完成时暂停执行方法然后执行movefile方法但是我似乎无法掌握/获取执行在调用MoveFilesCompleted.MoveComp()之前停止一段时间。
这就是我所拥有的,但希望得到任何建议......
private void _fileWatcher_Created(object sender, FileSystemEventArgs e)
{
FileInfo f = new FileInfo(e.FullPath);
if (f.Extension.Equals(".xml") || f.Extension.Equals(".XML"))
{
Logger.log(String.Format("File Created: Path: {0}, Name: {1}", e.FullPath, e.Name));
try
{
exBat.executeBAT();
}
catch (Exception ex)
{
Logger.log(String.Format("Running the XMLtoINF SQLload failed."));
}
Thread.Sleep(15000);
MoveFilesCompleted.MoveComp();
}
}
答案 0 :(得分:1)
如果您发布一些关于如何执行批处理文件的信息,那将非常有用!
答案 1 :(得分:1)
假设executeBAT
使用System.Diagnostics.Process
类启动BAT文件,您可以通过调用Process.WaitForExit让它等待该进程退出。