所以基本上我有一个数据网格视图进入文件并将所有.txt文件名加载到数据网格视图中。我需要做的是当我点击数据网格视图中的某个文件时,它会将该文件的内容打开到列表视图中。
任何人都可以帮忙,因为我被卡住了吗?
我猜是这样的:
如果文件夹中的数据网格视图值= .txt文件,则将内容加载到listview中。
听起来很容易,只是不确定如何编码。
谢谢
到目前为止我有这个但是仍然不起作用:
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"); }
答案 0 :(得分:0)
看起来您创建了错误的路径,或者您正在读取不正确的单元格值。使用重载的Path.Combine
接受路径部分列表。此外,您应该添加path
。
line
添加到列表中
以下代码将显示错误消息,如果文件不存在,其中路径尝试查找文件。如果网格单元格中没有文件名,它也会显示错误消息。
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
}