在b中存储了文件名和目录路径 我想用xcopy代码备份[2]。
代码:
private void btnBenutz_Click(object sender, EventArgs e)
{
lblAusgabe2.Text = "";
ListBox.ObjectCollection a = listBox1.Items;
foreach (string x in a)
{
b = x;
lblAusgabe2.Text += "\n" + b;
}
}
更多代码:
Process.Start("XCOPY.EXE", "/E /I /Y" + b + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\UserData\\");
我如何使用b作为我可能需要的数组?否则只会读出第一项?此过程开始我必须在btnBenutz之外使用...所以一些变量必须在公共分部类Form2中初始化:Form
答案 0 :(得分:1)
将b
定义为List<string>
。您还可以使用更好的名称,例如fileNameList
:
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?
}
}
然后在另一个地方,为每个文件运行xopy
命令:
foreach(string fileName in fileNameList)
{
Process.Start("XCOPY.EXE", "/E /I /Y " + fileName + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\UserData\\");
}
如果这是你想要实现的目标!
答案 1 :(得分:0)
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...
}
答案 2 :(得分:0)
如您所评论,您想要从其他地方调用它,也可以像其他按钮一样点击 做这样的事情:
1)在类级别声明字符串列表
List<string> fileNameList ;
2)使用一些有意义的名称创建一个函数,让我们说如下面的StartXcopy
public void StartXcopy()
{
ListBox.ObjectCollection a = listBox1.Items;
fileNameList = new List<string>();
foreach (string x in a)
{
fileNameList.Add(x);
lblAusgabe2.Text += "\n" + x;
}
foreach (string filename in fileNameList)
{
System.Diagnostics.Process.Start("XCOPY.EXE", "/E /I /Y" + filename + pfadauswahl + "\\Backup\\" + dt.ToString("yyyy-MM-dd") + "\\UserData\\");
}
}
3)然后从您想要的地方调用此功能,如下面的按钮单击
private void btnBenutz_Click(object sender, EventArgs e)
{
lblAusgabe2.Text = "";
StartXcopy();
}
注意:我假设您总是在遍历listBox1项目。