4

次のコードは、組織のリストを介してそれぞれに 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 current ユーザーに完全なアクセス許可を与える必要があります。これを行うには、フォルダーを右クリックしてプロパティに移動し、securitty タブに移動し、現在のユーザーが存在しない場合は追加して提供します。そのユーザーの完全な許可。

于 2013-01-11T12:48:14.567 に答える