繁体   English   中英

如何使用Visual C#和Streamwriter在循环中更改文本文件的名称

[英]How to Change the name of a Text File in a loop using visual c# and streamwriter

我正在尝试编写一个循环,该循环读取一个列表,并根据获取数据的时间将列表的一部分保存到不同的文本文件中。 我想根据获取数据的时间来命名文本文件。

以下是相关代码:

private StreamWriter filename;
string[] hour = {"00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23}

private void btn_hourfiles_click(object sender, EventArgs e)
{
    int sizeoflist = Data_List.Count(); //This is the list containing the data
    for (int i = 0; i<sizeoflist,i++)
    {
       string[] listsplit = Data_List[i].Split(":");
       for (int j = 0; j<24; j++)
       {
           if (listsplit[2] == hour[j])
           {
            string[] datesplit = txt_DATE.Text.Split('-');//splits input date
            filename = datesplit[0] + '_' + dateplit[1] + '_' + datesplit[2] + '_' + hour[j] + '.dat'
            filename = new StreamWriter(new FileStream(Data_List[i], FileMode.Append, FileAccess.Write));
            }
       }
    }
 }

问题:我无法更改StreamWriter filename 我收到一条错误消息: Cannot implicitly convert type string to System.IO.StreamWriter

问题:如何更改变量文件名?

您发布的代码未得到编译。 下次尝试发布输入内容,这样可以更轻松地帮助您回答问题。 无论如何,我试图根据您上面的描述为您提供帮助,希望它会对您有所帮助

课程计划{

    static void Main(string[] args)
    {
        MyTest test = new MyTest();

        test.Foo();
    }
}

class MyTest
{
    private StreamWriter streamWriter;
    string[] hour = { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23" };

    public void Foo()
    {
        string txt_DATE = "25-02-2015";
        string[] Data_List = { "12:05:10", "02:15:00", "14:15:22" };

        int sizeoflist = 3; // Data_List.Count(); //This is the list containing the data
        for (int i = 0; i < sizeoflist; i++)
        {
            string[] listsplit = Data_List[i].Split(':');
            for (int j = 0; j < 24; j++)
            {
                if (listsplit[2] == hour[j])
                {
                    string[] datesplit = txt_DATE.Split('-');//splits input date
                    var filename = datesplit[0] + '_' + datesplit[1] + '_' + datesplit[2] + '_' + hour[j] + ".dat";
                    streamWriter = new StreamWriter(new FileStream("C:\\" + filename, FileMode.Append, FileAccess.Write));
                }
            }
        }
    }
}

问题在于StreamWriter是这样声明的:

private StreamWriter filename;

但随后分配了一个字符串:

filename = datesplit[0] + '_' + dateplit[1] + '_' + datesplit[2] + '_' + hour[j] + '.dat'

建议:为文件名和StreamWriter使用单独的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM