ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = @".\ext.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
int i=0;
string item = listView1.Items[i++].Text;
startInfo.Arguments = "--logfile=duration_output.txt " + (item);
我试图将所有项目列为string[]
,但是应用程序会给我一个空的日志文件。
当我使用简单的string item = listView1.Items[i++].Text
时,它只给出了输出中的第一个文件。
怎么可能这样做?
答案 0 :(得分:3)
你在找这样的东西吗?
startInfo.Arguments = "--logfile=duration_output.txt " +
string.Join(" ", from item in listView1.Items.Cast<ListViewItem>()
select @"""" + item.Text + @""""
);
答案 1 :(得分:2)
您需要遍历列表视图中的所有项目并将它们连接成一个字符串:
string item = string.Empty;
foreach (ListViewItem anItem in listView1.Items)
{
item += " " & anItem.Text;
}
答案 2 :(得分:2)
试试这个:
string[] items = listView1.Items.Select(x => x.Text).ToArray();
答案 3 :(得分:0)
StringBuilder args = new StringBuilder();
args.Append("--logfile=duration_output.txt");
foreach( var str in listView1.Items )
{
args.Append( " " );
args.Append( str );
}
答案 4 :(得分:-1)
//这是您可以直接在System.Diagnostics上使用的内容 //它只是将Console.WriteLine替换为您正在使用的Stream Class。 //替换我使用System.Diagnostics和ListView的地方通过listview itesm迭代
System.Diagnostics.Process[] proc = System.Diagnostics.Process.GetProcesses();
foreach(Process theprocess in proc)
{
Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
}