日期:2014-05-18  浏览次数:20396 次

求助,StreamWriter的一个问题
我用StreamWriter创建文本,并且写入文本,需要修改2个文本文件
但是我用如下方法只能用一个,连第二个都创建不出来。
问题就是
要么创建第一个,并且可以写入数据,但是第二个无法创建无法写入数据了。
或者文件可以创建,第一个和第二个都写入不了数据
以下方法在调试里可以创建2个并且都写入数据
但是在IIS服务器里的应用程序设置里,如果不创建,就是以上的问题了
创建后问题就解决了
现在需要解决:
如何在虚拟主机里这样做。或者别的方法?
因为我需要创建3个文本并且每个文本都可以追加数据。
C# code
StreamWriter sr;
                    sr = File.CreateText(Server.MapPath(str) + "\\" + DropDownList1.SelectedValue + "\\" + name + ".txt");
                    sr.WriteLine("写入数据1");
                    sr.Close();
        using (StreamWriter sw = File.AppendText(Request.PhysicalApplicationPath +"\\" + "a.txt"))                 
sw.WriteLine("写入数据");

Request.PhysicalApplicationPath应该是当前aspx文件所在目录

------解决方案--------------------
第一个看下你在服务器上有没有权限
第二个,你参考下面的代码,最好用下面的方式来实现你要的功能
using System;
using System.IO;
using System.Text;

class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";

// This text is added only once to the file.
if (!File.Exists(path))
{
// Create a file to write to.
string createText = "Hello and Welcome" + Environment.NewLine;
File.WriteAllText(path, createText);
}

// This text is always added, making the file longer over time
// if it is not deleted.
string appendText = "This is extra text" + Environment.NewLine;
File.AppendAllText(path, appendText);

// Open the file to read from.
string readText = File.ReadAllText(path);
Console.WriteLine(readText);
}
}


------解决方案--------------------
或者
C# code
using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";
        // This text is added only once to the file.
        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");
            }    
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        using (StreamWriter sw = File.AppendText(path)) 
        {
            sw.WriteLine("This");
            sw.WriteLine("is Extra");
            sw.WriteLine("Text");
        }    

        // Open the file to read from.
        using (StreamReader sr = File.OpenText(path)) 
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) 
            {
                Console.WriteLine(s);
            }
        }
    }
}

------解决方案--------------------
虚拟机 IIS的权限有 写入的权限吗?、 IIS 右键 文件夹 -》 读取 ,写入 打勾
------解决方案--------------------
你要在iis目录下有生成文件的权限。就要有写入的权限