1

在 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";
}
4

3 回答 3

2

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

于 2012-09-17T04:33:13.183 回答
1

您需要关闭文件,尝试:

File.Create(completeFileName).Close();
于 2012-09-17T04:44:50.933 回答
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";
}
于 2012-09-17T04:45:21.567 回答