我有以下代码,它们应该通过org列表对每个代码进行td,在每个代码上调用toString方法,并将结果打印到控制台和名为Debug1.tab的文件.
try
{
StreamWriter print = File.CreateText("Debug1.tab");
Console.WriteLine(LinkedInClass.isThrottled);
int p = 1;
foreach (Org org in orgList)
{
try
{
if (org.numContacts > 0)
{
Console.WriteLine(org.ToString());
print.WriteLine(org.ToString());
}
}
catch (Exception) { Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); Console.ReadKey();}
}
print.Close();
Console.WriteLine("There were " + orgList.Count + " organizations in the list." + LinkedInClass.numWithContacts + " of which I found contacts for. Throttling was "+(LinkedInClass.isThrottled?"":"not ")+"encountered.");
break;
}
catch (Exception e) { Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); Console.ReadKey(); }
在Visual Studio中,它可以很好地工作,但是当我发布它时,程序不会创建文件或写入文件.它仍在写入控制台,catch语句没有执行,并且应该在关闭streamWriter之后立即将其打印到控制台.
解决方法:
指定文件名的方式(不提供路径),文件在当前工作目录中创建,该目录可能与应用程序所在的目录不同.可能有助于使用搜索磁盘查看文件是否有用在其他地方创建.
无论如何:在创建文件时指定一个路径,以确保它始终位于您期望的位置(并且不使用Program Files文件夹,而是使用一些可公开写入的文件夹).