我正在制作一个使用listView中的文件夹路径的软件,并生成一个隐藏该文件夹的.bat文件!
以下是创建bat文件的按钮:
private void HideItBtn_Click(object sender, EventArgs e)
{
string[] strArray = new string[500];
int i = 0;
StreamWriter hide = new StreamWriter(HideNameTxt.Text + ".bat");
hide.WriteLine("@Echo off");
foreach (var cur in FolderList.Items)
{
strArray[i] = cur.ToString();
hide.WriteLine("attrib " + strArray[i] + " +s +h");
i++;
}
hide.Close();
}
它没什么特别的,我把所有listView项放在一个字符串中并使用循环来写一个.bat文件!
这是输出(创建的.bat文件):
@Echo off
attrib ListViewItem: {C:\Users\Sand\Desktop\New folder} +s +h
现在的问题是,当我编写listViewIrem时,它的格式是ListViewItem:{item} 这样.bat文件就不行了!有没有办法删除' ListViewItem:{}'从输出!而只是写了文件夹的路径?
答案 0 :(得分:0)
您只需使用Text
属性:
strArray[i] = cur.Text;
但您还需要将foreach
循环更改为:
foreach (ListViewItem cur in FolderList.Items)
答案 1 :(得分:0)
这取决于项目'类型。您正在为每个项目调用ToString()
方法。如果您的所有商品都是ListViewItem
的类型,则可能需要调用.Text
属性。
strArray[i] = ((ListViewItem)cur).Text;
或
foreach (ListViewItem cur in FolderList.Items)
{
strArray[i] = cur.Text;
hide.WriteLine("attrib " + strArray[i] + " +s +h");
i++;
}
答案 2 :(得分:0)
据我所知,您需要在批处理文件中列出目录。
然后使用:Directory.GetDirectories
private void HideItBtn_Click(object sender, EventArgs e)
{
StreamWriter hide = new StreamWriter(HideNameTxt.Text + ".bat");
hide.WriteLine("@Echo off");
string[] dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly);
foreach (var dir in dirs)
{
hide.WriteLine("attrib " + dir + " +s +h");
}
hide.Close();
}