这段代码的问题是:
成都创新互联公司专业为企业提供彭泽网站建设、彭泽做网站、彭泽网站设计、彭泽网站制作等企业网站建设、网页设计与制作、彭泽企业网站模板建站服务,十多年彭泽做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
首先for each循环在files里查找文件对象,但是f变量声明为string了,无法让它获取对象;
然后file.copy的变量file没有任何声明,也没有初始化赋值等;
最后,整个for each循环里查找集合files的文件,由于初始化的循环计数器仍然按照最初设定的文件数目向后递增(文件地址),但是实际文件删除一部分,后续的文件位置就不能跟循环计数指针匹配了,所以默认为查找不到文件,将会报错。一般的做法时把复制和删除分别放在2次循环里,第一次只复制文件,第二次才去删除。
用Directory.CreateDirectory即可创建文件夹:
' 建立目录
If Not Directory.Exists("C:\负屃\" TextBox1.Text) Then '检查文件夹是否存在
Directory.CreateDirectory("C:\负屃\" TextBox1.Text) '不存在,创建文件建夹
End If
你的例子是因为少了一个"\"引起的,正确的如下:
Dim fsotest As New FileSystemObject
If fsotest.FileExists("C:\负屃\" TextBox1.Text) = False Then
fsotest.CreateFolder("C:\负屃\" TextBox1.Text) '这里你少了一个\
End If
MsgBox("创建成功")
老实说不一定要webBrowser,这是Windows下载文件界面啊,不是VB.Net画出来的。
真的是做下载文件,WebClient.DownloadFile方法就足够了,调用方法后会自动弹出Windows下载任务窗口。
在VS.NET里也提供了一个com接口,可以直接调用迅雷的dll,下载文件可以让你自由选择是用迅雷下载还是通过Windows下载任务来执行下载。
webBroser下载文件
FileInfo file = new System.IO.FileInfo(Server.MapPath(path));
if (File.Exists(Server.MapPath(path)))
{
string name = Path.GetFileName(Server.MapPath(path));
//存在文件
Response.Clear();
Response.Buffer = false;
//通知浏览器下载文件而不是打开
Response.ContentType = "application/octet-stream";
//下载的文件名
Response.AppendHeader("content-disposition", "attachment;filename=" + name);
//文件的大小
Response.AppendHeader("Content-Length", file.Length.ToString());
Response.WriteFile(path);
}
介绍一个更简单的方法给你,从webbrowser获取点击的超连接,然后自由选择下载,先在引用里引用com组件
然后在点击事件中加代码
string url = webBrowser1.Document.Links[1].GetAttribute("href");
ThunderAgentLib.AgentClass agent = new ThunderAgentLib.AgentClass();//创建对象
agent.AddTask(url, "默认保存文件名", "C:\\默认路径", "", "", 1, 0, 5);
agent.CommitTasks2(1);//提交
我用的是C#代码,VB.NET大同小异
vb.net使用控件FolderBrowserDialog1,在程序中:
'设置对话框中在树视图控件上显示的说明文本
Me.FolderBrowserDialog1.Description
=
"请选择输出报表所在路径:"
'设置从其开始浏览的根文件夹
Me.FolderBrowserDialog1.SelectedPath
=
"c:\"
If
Me.FolderBrowserDialog1.ShowDialog()
=
DialogResult.OK
Then
'取得全路径(包含文件名)
reportPath1
=
System.IO.Path.GetFullPath(Me.FolderBrowserDialog1.SelectedPath)
'设定text显示文件名
txtReport1.Text
=
reportPath1
setReportList()
End
If
在setReportList()中针对你所需要的文件进行操作等