刚从webservice创建后无法打开文本文件

时间:2012-09-17 04:27:31

标签: c# asp.net web-services

在c#webservice代码中创建文件后,我无法打开文件。 该目录最初不存在。所以程序会创建目录和文件。然后尝试打开文件写一行。但它无法打开文件。错误是文件在另一个进程中打开。

我试图从Windows资源管理器中打开该文件。该文件打开但仍然出现错误消息。 我试图删除文件夹C:\ Test,它说文件打开是在 WebDev.WebDevServer40.exe

请帮助。

[WebMethod]
    public string saveFileUploaderName(string name)
    {
        string path = "c:\\Test";
        string filename = "Test.txt";
        string completeFileName = Path.Combine(path,filename);
        if(!File.Exists(completeFileName))
        {
            Directory.CreateDirectory(path);
            File.Create(completeFileName);
        }
        StreamWriter writer = File.AppendText(completeFileName);
        writer.WriteLine(name);
        writer.Flush();
        writer.Close();
return "success";
}

3 个答案:

答案 0 :(得分:2)

File.Create返回一个流,但您要丢弃它。 所以(我想!)您需要使用返回的流,或者在尝试打开同一个文件的新流之前显式关闭它。

答案 1 :(得分:1)

您需要关闭该文件,请尝试:

File.Create(completeFileName).Close();

答案 2 :(得分:0)

请改用File.AppendAllText

如果文件不存在,这将创建文件。

您的代码就像

一样简单
[WebMethod]
public string saveFileUploaderName(string name)
{
    string path = "c:\\Test";
    string filename = "Test.txt";
    string completeFileName = Path.Combine(path,filename);
    File.AppendAllText(completeFileName, name);
    return "success";
}