string _uninstallPath = GetPath();
DataSet ds = Resolve();
try
{
string[] ChildModelDir = System.IO.Directory.GetDirectories(_uninstallPath);
for(int i=0;i<ChildModelDir.Length;i++)
{
for(int j=0;j<ds.Tables[0].Rows.Count;j++)
{
DataRow dr = ds.Tables[0].Rows[i];
foreach(string directory in ChildModelDir)
{
string ChildModelPath = _uninstallPath + "\\"+dr[1].ToString();
if(directory == ChildModelPath )
{
return true;
}
}
}
}
}
catch
{}
return false;
DataSet ds = Resolve();
try
{
string[] ChildModelDir = System.IO.Directory.GetDirectories(_uninstallPath);
for(int i=0;i<ChildModelDir.Length;i++)
{
for(int j=0;j<ds.Tables[0].Rows.Count;j++)
{
DataRow dr = ds.Tables[0].Rows[i];
foreach(string directory in ChildModelDir)
{
string ChildModelPath = _uninstallPath + "\\"+dr[1].ToString();
if(directory == ChildModelPath )
{
return true;
}
}
}
}
}
catch
{}
return false;
DataSet ds = Resolve();
try
{
string[] ChildModelDir = System.IO.Directory.GetDirectories(_uninstallPath);
for(int i=0;i<ChildModelDir.Length;i++)//遍历子目录,i为数组索引
{
for(int j=0;j<ds.Tables[0].Rows.Count;j++)//遍历DataTable,j为行索引
{
DataRow dr = ds.Tables[0].Rows[i];//数组索引怎么引用行集内容?狂晕!
foreach(string directory in ChildModelDir)//再次遍历子目录,何意?
{
string ChildModelPath = _uninstallPath + "\\"+dr[1].ToString();
if(directory == ChildModelPath )
{
return true;
}
}
}
}
}
catch
{}
return false;
DataSet ds = Resolve();
try
{
string[] ChildModelDir = System.IO.Directory.GetDirectories(_uninstallPath);
foreach(string directory in ChildModelDir)
{
foreach(DataRow dr in ds.Tables[0].Rows)
{
string ChildModelPath = _uninstallPath + "\\"+dr[1].ToString();
if(directory == ChildModelPath )
{
return true;
}
}
}
}
catch
{}
return false;
dr[1].ToString();
从哪里取?
我知道问题
我知道有问题
如果不习惯foreach 其实去掉你最后一个foreach就可以了
string _uninstallPath = GetPath();
DataSet ds = Resolve();
try
{
string[] ChildModelDir = System.IO.Directory.GetDirectories(_uninstallPath);
for(int i=0;i<ChildModelDir.Length;i++)
{
for(int j=0;j<ds.Tables[0].Rows.Count;j++)
{
DataRow dr = ds.Tables[0].Rows[i];
string ChildModelPath = _uninstallPath + "\\"+dr[1].ToString();
if(directory == ChildModelPath )
{
return true;
}
}
}
}
catch
{}
return false;
如果那样的话
directory 就没有定义了
DataSet ds = Resolve();
try
{
string[] ChildModelDir = System.IO.Directory.GetDirectories(_uninstallPath);
for(int i=0;i<ChildModelDir.Length;i++)
{
DataRow dr = ds.Tables[0].Rows[i];
foreach(string directory in ChildModelDir)
{
string ChildModelPath = _uninstallPath + "\\"+dr[1].ToString();
if(directory == ChildModelPath )
{
return true;
}
}
}
}
catch
{}
return false;
//从哪里取?什么从哪里取?dr是个DataRow啊,dr[1]取索引为1的列的值foreach(DataRow dr in ds.Tables[0].Rows)
就是遍历行集,取得每一行给dr
楼主,你最后的代码遍历两次ChildModelDir数组,而没有遍历DataTable
第一重循环是遍历DataTable,但循环条件错了
i<ChildModelDir.Length
应该是
i<ds.Tables[0].Rows.Count用foreach其实是一样的
搜索目标路径下是否有文件夹
如果有文件夹的话
判断 文件夹名 是否等于DataTable中某条数据如果有相等就返回true
我需要更简单的
用这个代码的话 _uninstallPath 为空的话
就会异常了!!!!
为什么是错的?