如果从命令提示符调用,C#应用程序不会创建文件

时间:2015-09-23 09:03:14

标签: c# command exec prompt shell-exec

我有一个简单的C#控制台应用程序,它将一些信息写入文本文件。从桌面打开时(通过单击.exe文件)应用程序正常工作。但是,当我通过命令提示符打开应用程序时,控制台窗口将正常打开,但应用程序不会向文本文件写入任何内容(其他代码函数在控制台窗口中正常工作)。

Fyi我需要通过命令提示符打开应用程序,因为稍后exe应用程序将放在服务器上并从php脚本调用(使用exec或shell_exec)。

我认为这可能是写权限或其他问题,但在任何时候都不会抛出任何错误,所以我不确定。有什么想法吗?

我的代码:

    static void Main(string[] args)
    {
        string arg="";
        try
        {
            arg = args[0];
        }
        catch { 
        }
        using (StreamWriter outputWriter = File.AppendText(@"C:\Archive\test.txt"))
        {
            outputWriter.WriteLine("arg="+arg);
        }
        Console.WriteLine("Test");
        Console.ReadLine();
    }

2 个答案:

答案 0 :(得分:1)

从命令行运行应用程序时,当前目录取决于您在提示符中的位置。

运行.exe时,请确保从与要写入的文件相同的目录运行它。

如果这样可以解决问题,那么您需要编写代码来处理要写入的文件不在当前目录中的情况,可以通过代码进行设置。

答案 1 :(得分:0)

嗯,我不知道发生了什么,但我现在通过命令提示符再次尝试,代码按预期工作。可能是我删除了任何隐藏的错误,因为我清理了代码以便在此处发布。呃..: - )