コード例 #1
0
    /// <summary>
    /// 删除订单目录
    /// </summary>
    /// <param name="ftpServerIP">FTP 主机地址</param>
    /// <param name="folderToDelete">FTP 用户名</param>
    /// <param name="ftpUserID">FTP 用户名</param>
    /// <param name="ftpPassword">FTP 密码</param>
    public static void DeleteOrderDirectory(string ftpServerIP, string folderToDelete, string ftpUserID, string ftpPassword)
    {
        try
        {
            if (!string.IsNullOrEmpty(ftpServerIP) && !string.IsNullOrEmpty(folderToDelete) && !string.IsNullOrEmpty(ftpUserID) && !string.IsNullOrEmpty(ftpPassword))
            {
                FtpWeb fw = new FtpWeb(ftpServerIP, folderToDelete, ftpUserID, ftpPassword);
                //进入订单目录
                fw.GotoDirectory(folderToDelete, true);
                //获取规格目录
                string[] folders = fw.GetDirectoryList();
                foreach (string folder in folders)
                {
                    if (!string.IsNullOrEmpty(folder) || folder != "")
                    {
                        //进入订单目录
                        string subFolder = folderToDelete + "/" + folder;
                        fw.GotoDirectory(subFolder, true);
                        //获取文件列表
                        string[] files = fw.GetFileList("*.*");
                        if (files != null)
                        {
                            //删除文件
                            foreach (string file in files)
                            {
                                fw.Delete(file);
                            }
                        }
                        //删除冲印规格文件夹
                        fw.GotoDirectory(folderToDelete, true);
                        fw.RemoveDirectory(folder);
                    }
                }

                //删除订单文件夹
                string parentFolder = folderToDelete.Remove(folderToDelete.LastIndexOf('/'));
                string orderFolder  = folderToDelete.Substring(folderToDelete.LastIndexOf('/') + 1);
                fw.GotoDirectory(parentFolder, true);
                fw.RemoveDirectory(orderFolder);
            }
            else
            {
                throw new Exception("FTP 及路径不能为空!");
            }
        }
        catch (Exception ex)
        {
            throw new Exception("删除订单时发生错误,错误信息为:" + ex.Message);
        }
    }
コード例 #2
0
        private void GetFiles(string folder, List <PictureItem> picItems, bool includeChildFolder)
        {
            Console.WriteLine(DateTime.Now.ToString("HH:mm:ss,fff") + "GetFiles:" + folder);
            string cd = folder.Trim('/');

            if (cd == "")
            {
                cd = "/";
            }
            else
            {
                cd = "/" + cd;
            }
            //m_FTPFileService.SetCurrentDirectory(cd);
            var ftplist = m_FTPFileService.GetFilesDetailList(folder).Where(it => it.IsDir == false).ToList().ConvertAll <string>(it => it.Name);

            if (ftplist != null && ftplist.Count > 0)
            {
                PictureItem picItem;
                string      fileExt;

                foreach (var item in ftplist)
                {
                    fileExt = Path.GetExtension(item);
                    if (Array.IndexOf(DataModel.Constant.PICFILE_EXTENSIONS, fileExt.ToLower()) > -1)
                    {
                        picItem = new PictureItem()
                        {
                        };
                        if (!string.IsNullOrEmpty(m_ftpUser) && !string.IsNullOrEmpty(m_ftpPass))
                        {
                            picItem.FullName = string.Format("ftp://{0}:{1}@{2}:{3}{4}", m_ftpUser, m_ftpPass,
                                                             m_ftpIP,
                                                             m_ftpPort,
                                                             string.IsNullOrEmpty(cd) ? "/" + item : string.Format("{0}/{1}", cd, item));
                        }
                        else
                        {
                            picItem.FullName = string.Format("ftp://{0}:{1}{2}",
                                                             m_ftpIP,
                                                             m_ftpPort,
                                                             string.IsNullOrEmpty(cd) ? "/" + item : string.Format("{0}/{1}", cd, item));
                        }
                        picItems.Add(picItem);
                    }
                }
            }


            if (includeChildFolder)
            {
                var dirs = m_FTPFileService.GetDirectoryList(folder);
                if (dirs != null && dirs.Count > 0)
                {
                    string tmp;
                    foreach (var dir in dirs)
                    {
                        tmp = string.Format("{0}/{1}", folder, dir);
                        GetFiles(tmp, picItems, includeChildFolder);
                    }
                }
            }
        }