C# 对于变量中的每个listbox项
不知怎的,今天早上我好像瞎了;) 我有下面的代码[1],它确实是 从列表框中删除对象集合。 使用字符串b,我可以“检索”字符串 在b中存储有文件名和目录路径 我想用xcopy代码[2]备份的 代码: 更多代码:C# 对于变量中的每个listbox项,c#,foreach,listbox,C#,Foreach,Listbox,不知怎的,今天早上我好像瞎了;) 我有下面的代码[1],它确实是 从列表框中删除对象集合。 使用字符串b,我可以“检索”字符串 在b中存储有文件名和目录路径 我想用xcopy代码[2]备份的 代码: 更多代码: Process.Start("XCOPY.EXE", "/E /I /Y" + b + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\UserData\\"); 如何使用b作为可能必须使用的数组?否则,始终只读
Process.Start("XCOPY.EXE", "/E /I /Y" + b + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\UserData\\");
如何使用b作为可能必须使用的数组?否则,始终只读取第一项?另外,我必须在btnBenutz之外使用的过程开始。。。因此,一些变量必须在公共部分类Form2:Form中初始化,正如您所评论的,您想从其他地方调用它,也可以像单击另一个按钮一样
private void btnBenutz_Click(object sender, EventArgs e)
{
var sb = new StringBuilder();
foreach (string x in listBox1.Items)
{
sb.Append("\n" + x);
}
// then use sb.ToString() somewhere...
}
这样做:
1) 在类级别声明字符串列表
List<string> fileNameList ;
注意:这里我假设您总是遍历列表框1项。将
b
定义为列表
。您还可以使用更好的名称,如fileNameList
:
private List<string> fileNameList; // a class field, not a local variable
然后在另一个位置,对每个文件运行xopy
命令:
foreach(string fileName in fileNameList)
{
Process.Start("XCOPY.EXE", "/E /I /Y " + fileName + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\UserData\\");
}
如果这就是你想要达到的目标 也许更好的
环境。NewLine
?嘿,丹尼斯,谢谢你的重播。。。看起来不错——字符串生成器怎么可以全局初始化?@incubuzz1978:“全局初始化”是什么意思?你可以声明类字段而不是局部变量。我需要在按钮前面声明sb,这样我就可以在它的“外部”使用它。。。这就是我所说的全球…问题是。。。foreach不能与按钮一起使用。。。代码在按钮外大约有500行。。。因此,我必须声明b和filenamelist globally,如果我们以这个示例为例,我想使用按钮外部的foreach。。。e、 在另一个按钮中…你想做什么?我猜,您在列表框中有一个文件名列表,您想将它们全部复制到另一个目录中。我说的对吗?几乎。。。我想复制它们是的。。。。但不知怎的,我错过了一个字符串数组。。。下面显示的所有示例仅在我在btnBenutz_单击中执行foreach时可用。。。我需要foreach像下面300行那样工作……这正是我想要实现的;)非常感谢。文件名。添加(x);需要在哪里定义它?@incubush1978在任何方法之外定义fileNameList
。无论在哪里,只是在形式类。看见
private void btnBenutz_Click(object sender, EventArgs e)
{
lblAusgabe2.Text = "";
StartXcopy();
}
private List<string> fileNameList; // a class field, not a local variable
private void btnBenutz_Click(object sender, EventArgs e)
{
lblAusgabe2.Text = "";
ListBox.ObjectCollection a = listBox1.Items;
foreach (string x in a)
{
fileNames.Add(x);
lblAusgabe2.Text += Environment.NewLine + x; // Why are you doing this?
}
}
foreach(string fileName in fileNameList)
{
Process.Start("XCOPY.EXE", "/E /I /Y " + fileName + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\UserData\\");
}