这是我的计划的一小部分。在这里我基本上写了一个.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结尾!但什么都没发生!请帮忙 !谢谢!
答案 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);
}
}