C# 从datagridview加载选定的.txt文件,并在listview c中打开该文件#
所以基本上我有一个数据网格视图,它进入一个文件并将所有的.txt文件名加载到一个数据网格视图中。我需要做的是,当我在数据网格视图中单击某个文件时,它会将该文件的内容打开到列表视图中 我被卡住了,有人能帮忙吗 我猜是这样的: 如果文件夹中的数据网格视图值=.txt文件,则将内容加载到listview中 听起来很简单,只是不知道如何编码 多谢各位 到目前为止,我已经做到了这一点,但仍然不起作用:C# 从datagridview加载选定的.txt文件,并在listview c中打开该文件#,c#,winforms,listview,datagridview,C#,Winforms,Listview,Datagridview,所以基本上我有一个数据网格视图,它进入一个文件并将所有的.txt文件名加载到一个数据网格视图中。我需要做的是,当我在数据网格视图中单击某个文件时,它会将该文件的内容打开到列表视图中 我被卡住了,有人能帮忙吗 我猜是这样的: 如果文件夹中的数据网格视图值=.txt文件,则将内容加载到listview中 听起来很简单,只是不知道如何编码 多谢各位 到目前为止,我已经做到了这一点,但仍然不起作用: private void gridProfiles_CellClick(object sender, D
private void gridProfiles_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (gridProfiles.Rows[e.RowIndex].Cells[0].Value != null)
{
var path = gridProfiles.Rows[e.RowIndex].Cells[0].Value.ToString();
path = Path.Combine(rootDirectory + "\\Profiles\\", path);
if (File.Exists(path))
{
String[] lines = File.ReadAllLines(path);
foreach (var line in lines)
{
lstProcesses.Items.Add(path);
}
}
}
}
当我运行这个程序时,它会得到ti if(file.exists)(path),然后跳过它
路由目录:
private static string rootDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\My File";
static void CreateDirectory()
{
string rootDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\My File";
if (!Directory.Exists(rootDirectory)) { Directory.CreateDirectory(rootDirectory); }
if (!Directory.Exists(rootDirectory + "\\Profiles")) { Directory.CreateDirectory(rootDirectory + "\\Profiles"); }
看起来您创建了不正确的路径,或者读取了不正确的单元格值。请使用重载的
path。组合接受路径部分列表的。此外,您应该添加行,而不是将路径添加到列表中
如果文件不存在,下面的代码将向您显示错误消息,其中包含它试图查找文件的路径。如果网格单元中没有文件名,则还会显示错误消息
private void gridProfiles_CellClick(object sender, DataGridViewCellEventArgs e)
{
object value = gridProfiles.Rows[e.RowIndex].Cells[0].Value;
if (value == null)
{
MessageBox.Show("Cannot get file name from grid");
return;
}
var file = value.ToString();
var path = Path.Combine(rootDirectory, "Profiles", file); // create path
if (!File.Exists(path))
{
MessageBox.Show(path + " not found");
return;
}
foreach(string line in File.ReadLines(path))
lstProcesses.Items.Add(line); // add line instead of path
}
调试通过,并检查路径的实际结果谢谢您的帮助,我们将尝试YY您的代码,但在foreach循环中“line”一词上出现的错误在当前代码中不存在context@Andrew我忘了指定类型,使用string
或var
添加,var行;然后指定“in”突出显示foreach语句中都需要的“chucks error”类型和标识符。我想我得到了它,但当我运行代码时,它转到“if file not existence”并显示路径未找到。现在可以完美地工作了!该死,这是一个小错误!感谢您的帮助,标记正确