4

我有以下代码,它应该通过 orgs 列表对它们中的每一个进行 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 之后立即正确打印到控制台。

4

2 回答 2

2

您指定文件名的方式(不提供路径),该文件是在当前工作目录中创建的,该目录可能与您的应用程序所在的目录不同。使用搜索您的磁盘以查看该文件是否有帮助可能会有所帮助是在别处创建的。

无论如何:在创建文件时指定一个路径,以确保它始终位于您期望的位置(并且不要使用该Program Files文件夹,而是使用一些可公开写入的文件夹)。

于 2013-01-11T12:50:01.490 回答
0

您应该在要向其中写入文件的文件夹上授予您的 os 当前用户完全权限。为此,右键单击该文件夹,转到属性并转到安全选项卡,如果当前用户不存在,则添加该用户并提供该用户的完全权限。

于 2013-01-11T12:48:14.567 回答