C# ZipArchive 引用中断 WIndows Service TImer
C# ZipArchive Reference Breaks WIndows Service TImer
我是新来的,也是 C# 的新手。我在一家零售商工作,一直停留在 visual studio 6 直到今年,但现在我正在自学 c# 并重写我在过去 21 年中所做的一切。你不希望你是我吗? :{
无论如何,我有一个 Windows 服务,它定期执行一系列创建文件的作业。当这些作业完成时,该服务会根据它们创建一个 zip 文件,并通知公司的服务器收集和删除该 zip 文件。我已经为这项服务苦苦挣扎了几天,因为计时器事件不会触发。所以我将它剥离成裸机——一个计时器和一个事件处理程序——而且它起作用了。然后我开始一次一点地添加回工作代码,直到我缩小到导致问题的代码部分。这是 ZipArchive 调用。一切正常,直到我取消注释以下代码,特别是 "using ( var archive ... ))" 块
var transmissionFiles = Directory.GetFiles( _uploadDirectory, "*.trx" );
if (transmissionFiles.Length > 0)
{
using (var zipfile = new FileStream( $"{_uploadDirectory}zp" +
$"{DateTime.Now:yyyyMMdd}.{_storeNumber:D4}.{DateTime.Now:HHmmss}", FileMode.Open ))
{
using (var archive = new ZipArchive( zipfile, ZipArchiveMode.Update ))
{
foreach (var tFile in transmissionFiles)
{
archive.CreateEntry( tFile );
File.Delete( tFile );
}
}
}
}
感谢任何帮助。
使用CreateFromDirectory(String, String)
归档目录
已通过将 ZipArchive 引用移至单独的方法来解决。在计时器事件处理程序中进行这些调用的一些事情不起作用。奇怪
我是新来的,也是 C# 的新手。我在一家零售商工作,一直停留在 visual studio 6 直到今年,但现在我正在自学 c# 并重写我在过去 21 年中所做的一切。你不希望你是我吗? :{
无论如何,我有一个 Windows 服务,它定期执行一系列创建文件的作业。当这些作业完成时,该服务会根据它们创建一个 zip 文件,并通知公司的服务器收集和删除该 zip 文件。我已经为这项服务苦苦挣扎了几天,因为计时器事件不会触发。所以我将它剥离成裸机——一个计时器和一个事件处理程序——而且它起作用了。然后我开始一次一点地添加回工作代码,直到我缩小到导致问题的代码部分。这是 ZipArchive 调用。一切正常,直到我取消注释以下代码,特别是 "using ( var archive ... ))" 块
var transmissionFiles = Directory.GetFiles( _uploadDirectory, "*.trx" );
if (transmissionFiles.Length > 0)
{
using (var zipfile = new FileStream( $"{_uploadDirectory}zp" +
$"{DateTime.Now:yyyyMMdd}.{_storeNumber:D4}.{DateTime.Now:HHmmss}", FileMode.Open ))
{
using (var archive = new ZipArchive( zipfile, ZipArchiveMode.Update ))
{
foreach (var tFile in transmissionFiles)
{
archive.CreateEntry( tFile );
File.Delete( tFile );
}
}
}
}
感谢任何帮助。
使用CreateFromDirectory(String, String)
归档目录
已通过将 ZipArchive 引用移至单独的方法来解决。在计时器事件处理程序中进行这些调用的一些事情不起作用。奇怪