将Array LineWise写入.txt文件?

时间:2014-05-27 18:26:53

标签: c# arrays visual-studio listview

这是我的计划的一小部分。在这里我基本上写了一个.txt文件,当按钮 - ' HideItBtn'点击。在这段代码中,首先创建.txt文件,然后创建ListView SubItem的值 - '文件夹路径'存储在字符串数组中,该数组用于写入文本文件。

  private void HideItBtn_Click(object sender, EventArgs e)
        {

            string[] strArray = new string[500];
            int i = 0;
            //Creat Hide.bat and write in it !
            StreamWriter hide = new StreamWriter(HideNameTxt.Text + ".txt");
            for (int j = 1; j < FolderList.Items[i].SubItems.Count; j++)
            {
                ListViewItem.ListViewSubItem cur = FolderList.Items[i].SubItems[j];

                strArray[i] = cur.Text;
                hide.WriteLine("attrib \" + strArray[i] + "\" + Environment.NewLine);

                i++;
            }
            hide.Close();
}

现在出现问题:

我运行我的应用程序并选择3个文件夹,从中显示在ListView中! 但输出.txt文件只包含:

attrib "C:\Users\Sand\Desktop\nf" 

非另一个文件夹r  上市!我添加了 - &#34; Environment.NewLine&#34;在.WriteLine结尾!但什么都没发生!请帮忙 !谢谢!

1 个答案:

答案 0 :(得分:1)

您需要有两个for循环,而不是一个。目前,您在for循环结束时递增i,但您只编写了一个子项,而不是所有子项。你需要有一个循环遍历所有项目,另一个循环来遍历所有子项目。

private void HideItBtn_Click(object sender, EventArgs e)
{
    using (StreamWriter hide = new StreamWriter(HideNameTxt.Text + ".txt"))
        for (int i = 0; i < FolderList.Items.Count; i++)
            for (int j = 1; j < FolderList.Items[i].SubItems.Count; j++)
            {
                ListViewSubItem cur = FolderList.Items[i].SubItems[j];
                hide.WriteLine("attrib \"" + cur.Text + "\"" 
                    + Environment.NewLine);
            }
}