比较datagridview和fileinfo之间的值

时间:2012-08-02 15:36:58

标签: c# datagridview compare

在我的程序中,我有一个datagridview,填充了2列。 frist列包含的值类似于filename.ext 第二列包含此文件的大小。

现在,我需要比较列中列出的文件是否存在于所选文件夹中(由打开文件夹对话框选择)

我认为必须使用

DirectoryInfo di = new DirectoryInfo(fldChk.SelectedPath);
                FileInfo[] rgFiles = di.GetFiles("*.*");

                foreach (FileInfo file in rgFiles)
                  { //do there
我认为使用2个数组列表,然后在第二个文件大小中添加frist文件名。但是只有假设和多个文件的文件夹,进程很慢。 什么是最好的方法呢?

2 个答案:

答案 0 :(得分:2)

您可以使用此基于代码的DataTable

var file = ...;
FileInfo f = new FileInfo(file);
FileSystemInfo f1 = new FileInfo(file);
dr = dt.NewRow();
//Get File name of each file name
dr["File_Name"] = f1.Name;
//Get File Size of each file in KB format
dr["File_Size"] = (f.Length / 1024).ToString();
DataTable dt = new DataTable();
dt.Rows.Add(dr);

DataGridView.DataSource = dt;
DataGridView.DataBind();

答案 1 :(得分:2)

您无需创建FileInfo对象来检测特定路径中的文件是否存在。只需使用System.IO.File.Exists method即可。如果第一列中的路径是相对路径,则在调用Exists方法之前,必须在列中添加路径的绝对路径。

var path = column.Text; // or wherever you get the path from
path = Path.Combine(@"C:\absolute\path\", path);
if (File.Exists(path))
{
   // Do something
}