先判断一下文件存在不 
string path = @"c:\temp\MyTest.txt";
        if (!File.Exists(path)) 
        {
            // Create a file to write to.
            using (StreamWriter sw = File.CreateText(path)) 
            {
                sw.WriteLine("Hello");
                sw.WriteLine("And");
                sw.WriteLine("Welcome");
            }    
        }

解决方案 »

  1.   

    你报的错误是不是
    UnauthorizedAccessException
     0x80070005 
    这个是
    调用方没有所要求的权限引起的
      

  2.   

    看看你是不是把d:\123.txt文件的只读属性勾上了?
      

  3.   

    看看你是否具有文件访问权限,最好添加asp.net帐户
      

  4.   

    你的d盘允许ASPNET这个用户访问吗?
      

  5.   

    或者你这样修改一下代码:
            Dim strwriterobj As StreamWriter
            If File.Exists("d:\123.txt") Then
                File.SetAttributes("d:\123.txt", FileAttributes.Normal)
            End If
            strwriterobj = File.CreateText("d:\123.txt")        strwriterobj.WriteLine("123")        strwriterobj.Close()
      

  6.   

    你忘了C#转义字符
    strwriterobj = File.CreateText("d:\\123.txt")
    或者使用全转义字符:strwriterobj = File.CreateText(@"d:\123.txt")
      

  7.   

    权限问题,d:\123.txt这个文件asp.net帐户没权访问,你在资源管理器里给这个文件所在文件夹设上相应权限即可