有人可以解释我如何调试它吗?
我已经构建了一个监视文件夹的Windows服务,当在该文件夹中创建文件时,它会将新创建的文件移动到另一个文件夹。很简单,很有效。我现在尝试使用功能填充它,我开始在事件查看器中抛出通用IOExpections,所以我想尝试调试。但我遇到的问题是在调试期间何时在目录中创建新文件。
这是我目前的代码
在单步执行期间我应该停在哪一行,将我的新文件放在目录中,然后继续调试以便它获取创建的文件?
public void OnDebug()
{
OnStart(null);
}
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
protected override void OnStart(string[] args)
{
string pathToWatch = ConfigurationManager.AppSettings["DirectoryToWatch"];
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = pathToWatch;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName;
watcher.Created += new FileSystemEventHandler(FileCreated);
watcher.EnableRaisingEvents = true;
}
private void FileCreated(object source, FileSystemEventArgs e)
{
try
{
DateTime dt = File.GetCreationTime(e.FullPath);
File.Move(e.FullPath.ToString(), ConfigurationManager.AppSettings["DirectoryToMoveTo"] + e.Name + dt.ToString());
LogEvent($"New file found and moved \n {e.FullPath.ToString()}");
}
catch (IOException ex)
{
LogEvent(ex.ToString());
}
}
答案 0 :(得分:0)
您可以在函数FileCreated中添加断点开始。
我建议你在
添加一个断点DateTime dt = File.GetCreationTime(e.FullPath);
在正在监视的目录中创建新文件时,会通知FileSystemWatcher并调用函数FileCreated。
我还建议您记录移动的目标路径。只是为了确保它是一条有效的道路。