解压后用Directioyinfo无法获得目录文件的问题
--------------------编程问答-------------------- 顶一个 --------------------编程问答-------------------- 谢谢 soonfei支持哈 我也是偶尔发现这个问题的 上传和解压的文件均已成功,仅在读取生成目录里的文件时却返回文件夹内无文件 感觉好像刷新文件夹一下才能成功 究竟为什么请高手指点一下 --------------------编程问答-------------------- 不知道,有没有人碰到过这个问题? --------------------编程问答--------------------是的 刷新一次啊 因为解压成功后文件名有可能重复 --------------------编程问答-------------------- to zyloveyrf:文件名没有重复,解压缩会自动覆盖已存在文件,我把读取代码
string jpgs = "|";
DirectoryInfo di = new DirectoryInfo(curl);
foreach (FileInfo fileinfo in di.GetFiles())
{
if (fileinfo.Extension.ToLower() == ".jpg")
{
jpgs += fileinfo.Name.ToString() + "|";
}
Response.Write(fileinfo.Name);
}
单独建立一个文件运行时没问题。 --------------------编程问答-------------------- 将代码更改测试结果:
解压代码相同
string fileurl="rar/"+上传压缩文件名; //上传压缩文件,压缩文件内含4个图片文件
string curl = Server.MapPath("./" + "unRar/");//解压路径
//判断有无解压目录,无则生成
if (!Directory.Exists(curl))
{
try
{
Directory.CreateDirectory(curl);
}
catch (Exception ec)
{
Lbl.Text = ec.Message.ToString();
cmd.Dispose();
conn.Close();
conn.Dispose();
return;
}
}
//解压开始
String myRar;
RegistryKey myReg;
Object myObj;
String myInfo;
ProcessStartInfo myStartInfo;
Process myProcess;
try
{
myReg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRar.exe\Shell\Open\Command");
myObj = myReg.GetValue("");
myRar = myObj.ToString();
myReg.Close();
myRar = myRar.Substring(1, myRar.Length - 7);
myInfo = " e " + Server.MapPath(fileurl) + " " + curl; myStartInfo = new ProcessStartInfo();
myStartInfo.FileName = myRar;
myStartInfo.Arguments = myInfo;
myStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProcess = new Process();
myProcess.StartInfo = myStartInfo;
myProcess.Start();
myProcess.Close();
myProcess.Dispose();
//Lbl.Text = "<font color=red>解压缩成功</font>";
}
catch (Exception ex)
{
Lbl.Text = ex.ToString();
cmd.Dispose();
conn.Close();
conn.Dispose();
return;
}
//解压结束
//读取文件代码 放入另一文件read.aspx
Response.Redirect("read.aspx?curl=" + curl, true);
read.aspx代码如下:
Response.Write(Request.QueryString["curl"].ToString()+"目录是否存在" + Directory.Exists(Request.QueryString["curl"].ToString()).ToString());
Response.Write(" 目录下文件数:"+Directory.GetFiles(Request.QueryString["curl"].ToString()).Length.ToString());
直接提交结果为:137052300049\2\2011\目录是否存在True 目录下文件数:0
如果刷新read.aspx则结果为:目录是否存在True 目录下文件数:5
补充:.NET技术 , C#