自动识别HTML代码里的图片链接,并下载到服务器的指定目录源码

CODE:

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
namespace zhang.Common
{
    public class HanlerFiles
    {
        private string[] GetImgTag(string htmlStr)
        {
            Regex regObj = new Regex("<img.+?>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            string[] strAry = new string[regObj.Matches(htmlStr).Count];
            int i = 0;
            foreach (Match matchItem in regObj.Matches(htmlStr))
            {
                strAry[i] = GetImgUrl(matchItem.Value);
                i++;
            }
            return strAry;
        }

        private string GetImgUrl(string imgTagStr)
        {
            string str = "";
            Regex regObj = new Regex("http://.+.(?:jpg|gif|bmp|png)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            foreach (Match matchItem in regObj.Matches(imgTagStr))
            {
                str = matchItem.Value;
            }
            return str;
        }
        /** <summary>
        /// 根椐Html内空自动识别图像文件,并下载到服务器指定目录
        /// </summary>
        /// <param name="strHTML"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        public int SaveUrlPics(ref string strHTML, string path)
        {
            string[] imgurlAry = GetImgTag(strHTML);
            try
            {
                for (int i = 0; i < imgurlAry.Length; i++)
                {
                    //WebRequest req = WebRequest.Create(imgurlAry[i]);
                    string preStr = System.DateTime.Now.ToString() + "_";
                    preStr = preStr.Replace("-", "");
                    preStr = preStr.Replace(":", "");
                    preStr = preStr.Replace(" ", "");
                    WebClient wc = new WebClient();
                    wc.DownloadFile(imgurlAry[i], HttpContext.Current.Server.MapPath(path) + "/" + preStr + imgurlAry[i].Substring(imgurlAry[i].LastIndexOf("/") + 1));
                    strHTML = strHTML.Replace(imgurlAry[i], path + preStr + imgurlAry[i].Substring(imgurlAry[i].LastIndexOf("/") + 1));
                }
               
            }
            catch (Exception ex)
            {
                //return ex.Message;
            }
            return imgurlAry.Length;
        }

    }
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
e语言是一种基于Windows操作系统的脚本语言,用于自动化任务和批处理。它提供了许多内置函数和对象,可以帮助我们实现各种操作。 要搜索指定文件并复制文件到该目录,我们可以使用e语言的文件系统操作函数和字符串处理函数。 首先,我们需要使用文件系统函数`findfile`来搜索指定的文件。这个函数受一个参数,即要搜索的文件名或者通配符。例如,我们可以使用`findfile("*.txt")`来搜索所有的txt文件。此函数将返回一个包含所有找到的文件路径的字符串列表。 下来,我们可以使用字符串处理函数`strreplace`来提取要搜索的文件的路径。这个函数受一个字符串参数和两个子字符串参数,它会将第一个子字符串替换为第二个子字符串。我们可以使用这个函数来提取文件所在的目录。例如,`strreplace(file, "\\filename.txt", "")`将会删除文件名,只保留目录着,我们可以使用文件系统函数`copyfile`来复制文件到指定目录。这个函数受两个参数,分别是文件路径和目标文件路径。我们可以使用`copyfile(file, dir + "\\newfile.txt")`来将文件复制到指定目录指定文件名。 最后,我们将上述操作放入一个循环中,遍历所有搜索到的文件。完整的代码如下: ```e string file; filelist files = findfile("*.txt"); foreach (file in files) { string dir = strreplace(file, "\\filename.txt", ""); copyfile(file, dir + "\\newfile.txt"); } ``` 这段代码会搜索当前目录下的所有txt文件,并将它们分别复制到它们所在的目录并重命名为newfile.txt。 通过使用e语言的文件系统操作函数和字符串处理函数,我们能够轻松地搜索指定文件并复制到该目录。希望这个回答对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值