我在Windows服务中编写了以下代码。当我尝试保存zip文件时,我收到了一个File Not Found Exception。我在zipFile.AddFile
中获取文件名。
System.IO.MemoryStream ms1 = new System.IO.MemoryStream();
System.IO.StreamWriter writer = new System.IO.StreamWriter(ms1, Encoding.UTF8);
string strHeader = "";
if (FailedErrorLogList != null && FailedErrorLogList.Any())
{
strHeader += "file_name" + ",";
strHeader += "mobile_no" + ",";
strHeader += "Description" + ",";
writer.WriteLine(strHeader);
foreach (Transactionapierrorfailedlog ErrorLog in FailedErrorLogList)
{
string strRowValue = "";
strRowValue += Escape(ErrorLog.file_name) + ",";
strRowValue += Escape(ErrorLog.mobile_no) + ",";
strRowValue += Escape(ErrorLog.Description) + ",";
writer.WriteLine(strRowValue);
// writer2.WriteLine(strRowValue);
}
writer.Flush();
ms1.Position = 0;
}
String filename = "Hello.csv";
if (FailedErrorLogList != null && FailedErrorLogList.Any())
{
ZipFile zipFile = new ZipFile();
using (zipFile)
{
zipFile.AddFile(filename);
zipFile.Save("Hello.zip");
}
}
答案 0 :(得分:0)
您的服务流程的“当前目录”不是您期望的那样(实际上,它很可能不是您的.exe的路径 - 它可能类似于c:\windows\system32
)。您始终需要准确指定(绝对路径)您要在哪里创建文件以及从哪里读取。
答案 1 :(得分:0)
使用 System.Windows.Forms.Application.StartupPath
而不是 Enviroment.CurrentDirectory