精华内容
下载资源
问答
  • FTP服务器上删除文件夹失败
    千次阅读
    2019-10-04 12:43:59

    很多人都知道:要删除FTP服务器上的文件夹时,必须确保文件夹下面没有其他文件,否则会删除失败!

    可是,有些服务器考虑到安全等因素,通常会隐藏以点开始的文件名,例如“.test.txt”。于是,有的坏人就往服务器上上传以点开头的文件,我们在删除文件夹时,怎么也删不掉!!!

     

    这时,我们使用FTP文件管理工具,强制显示隐藏的文件,就会发现隐藏的文件(以点开头的文件),删除它们,然后再删除文件夹,Done!

     

    转载于:https://www.cnblogs.com/acode/p/5516662.html

    更多相关内容
  • 主要介绍了Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法,需要的朋友可以参考下
  • ftp服务器文件删除

    2021-08-11 09:36:51
    ftp服务器文件删除 内容精选换一换使用云服务器备份创建镜像后,通过创建成功的镜像创建云服务器,但登录云服务器后提示系统进入维护模式,无法正常使用云服务器。当云服务器带有数据盘的时候,恢复后的云服务器中的...

    ftp服务器文件删除 内容精选

    换一换

    c8a5a5028d2cabfeeee0907ef5119e7e.png

    使用云服务器备份创建镜像后,通过创建成功的镜像创建云服务器,但登录云服务器后提示系统进入维护模式,无法正常使用云服务器。当云服务器带有数据盘的时候,恢复后的云服务器中的系统盘/etc/fstab文件信息仍是原云服务器的配置参数,和新数据盘的UUID信息不匹配,导致云服务器启动过程中加载/etc/fstab信息出错,系统进入维护模式。本例以

    一个存储库只可以绑定一个备份策略。一个存储库只可以绑定一个复制策略。一个存储库最多可以绑定256个资源。最多只能创建32个备份策略和32个复制策略。只有“可用”或“锁定”状态的存储库中的备份可以进行数据恢复。“正在删除”状态的存储库中的备份不能执行删除操作。使用SDRS部署容灾的云服务器,在开启容灾保护后,容灾站点的云服务器/云硬盘不支持

    ftp服务器文件删除 相关内容

    ISO是一种光盘映像文件,通过特定的压缩方式,将大量的数据文件统一为一个后缀名为iso的映像文件。ISO文件可以理解为从光盘中复制出来的数据文件,所以ISO文件无法直接使用,需要利用一些工具进行解压后才能使用。例如使用虚拟光驱打开,或者将ISO文件刻录到光盘中后,使用光驱来进行读取。本章介绍通过ISO文件创建Windows系统盘镜像的操作

    Windows操作系统镜像执行Sysprep之后,使用该镜像创建的弹性云服务器启动时出现如下图的提示信息:提示信息且弹出如下提示信息:Windows无法分析或处理 pass [ specialize ] 的无人参与应答文件。应答文件中指定的设置无法应用。处理组件设置时检测到错误 [ Microsoft-Windows-Shell-Setu

    ftp服务器文件删除 更多内容

    b80c406dd1bff1336ad2b20072f4b1ca.png

    本节操作适用于Linux操作系统云服务器/etc/passwd文件损坏导致云服务器无法登录的问题。本节操作为紧急恢复系统方法,需要在单用户模式下会将系统备份初始备份/etc/passwd-文件替换已损坏的/etc/passwd文件,该操作会造成自行添加的用户丢失(包括应用运行的用户,可以参考/etc/shadow文件添加其他账号)。本节操

    9bf196c9a2e0b7b0bc69748c838418a5.png

    只有在本端设备为主用节点时支持该操作,当本端设备降至备用节点时,请前往对端设备进行操作。若倒换不成功,可勾选“强制倒换”,进行强制操作。只有在本端设备为主用节点时支持该操作,当本端设备降至备用节点时,请前往对端设备进行操作。禁用时长设置(分钟):1-1440整数。禁用成功后,主备倒换功能将不可用,系统将在设定的时间后恢复主备倒换功能,如需

    ea3d514774dda107c847f333927c833f.png

    删除共享。该接口为异步接口,返回为202只是表示接口下发接收成功,后续可以通过查询共享详细信息查询共享,判断删除共享是否完成以及是否成功。DELETE /v2/{project_id}/shares/{share_id}参数说明参数是否必选参数类型描述share_id是String共享的ID。project_id是String操作用户的项

    293f5c3a9815ee95e4ed79a7f04b8f18.png

    用户在FusionInsight Manager界面配置监控指标转储后,系统按转储时间间隔(默认60秒)周期性检测监控指标转储结果,转储失败时产生该告警。转储成功后,告警恢复。监控指标转储失败会影响上层管理系统无法获取到FusionInsight Manager系统的监控指标。无法连接服务器。无法访问服务器上保存路径。上传监控指标文件失败

    399bb9e39ad395cd7fb119c5287fddf8.png

    挂载有NVMe SSD盘的Linux弹性云服务器(如P1型云服务器)发生故障时,需联系管理员通过异地重建的方式进行恢复,新建故障弹性云服务器。如果故障弹性云服务器在/etc/fstab中设置了NVMe SSD盘的开机自动挂载功能,对于新建弹性云服务器,系统盘恢复,但挂载的NVMe SSD盘无文件系统,无法实现开机自动挂载,导致云服务器启动

    bde960fb156614c03a124ff840e10cb0.png

    服务器感染勒索病毒越来越普遍,一旦服务器遭受勒索病毒攻击,关键文件会被加密,无法正常使用,企业业务将受到严重影响。HSS针对勒索病毒提供了防勒索解决方案,帮助您从勒索病毒入侵前、入侵时和入侵后全方位应对勒索病毒。创建防勒索病毒策略后,HSS可有效监控您云主机上存储的重要文件,防止未经过认证或授权的进程文件对监控文件的加密或修改操作,保障您

    a4c4c5b28481f97f2139da8bb7c47c58.png

    VPC为弹性云服务器构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署。使用弹性文件服务时,文件系统和云服务器归属于同一VPC下才能文件共享。VPC可以通过网络ACL进行访问控制。网络ACL是对一个或多个子网的访问控制策略系统,根据与子网关联的入站/出站规则,判断数据包是否被允许流入/流出关联子网。

    118fcc6f8f8a59b8317188ff10d93c94.png

    以CentOS 7操作系统的弹性云服务器为例:登录Linux弹性云服务器,查看“cloud-init”的配置文件。检查“/etc/cloud/cloud.cfg”文件中“update_hostname”是否被注释或者删除。如果没有被注释或者删除,则需要注释或删除 “-update_hostname”语句。“update_hostname”

    be6c0fefabcd88eafba576089843e93b.png

    云备份(Cloud Backup and Recovery)为云内的云服务器、云硬盘,提供简单易用的备份服务,针对病毒入侵、人为误删除、软硬件故障等场景,可将数据恢复到任意备份点。

    来自:产品

    e08a3c1d383ce0289aa478984d9adca2.png

    使用FTP上传文件时,写入失败,文件传输失败。该文档适用于Windows系统上的FTP服务。FTP服务端在NAT环境下,客户端需使用被动模式连接服务端。在这种情况下,服务端的IP地址无法从路由器外部访问,所以应该在服务端的对外IP中填写此服务器的公网IP(弹性公网IP),同时设置端口范围来限制需要通过路由器转发的端口数量。弹性公网IP与私

    0b0fd50cfcc497558515f132e9f0a09e.png

    安装完操作系统后的临时云服务器需要进行相关配置,并安装原生的XEN和KVM驱动,才能保证后续创建的云服务器正常使用。该任务指导用户完成Linux云服务器的相关配置与驱动安装,从而创建为Linux系统盘镜像。配置云服务器。具体操作请参考“Linux外部镜像文件在导出前未完成初始化配置,怎么办?”中的“步骤4:配置云服务器”。配置网络检查云服

    展开全文
  • Delphi中利用IDFTP删除FTP服务器中的文件及文件夹,也即删除指定目录下所有的文件和文件夹
  • JAVA操作FTP文件服务器上传与下载文件,包含远程动态创建文件夹、查看文件是否存在、删除文件、上传文件和下载文件等方法
  • 主要介绍了JAVA技术实现上传下载文件FTP服务器(完整),本文使用 Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作,需要的朋友可以参考下
  • QT5.7ftp客户端包含单文件上传下载及服务器文件删除
  • C# 实现对Ftp服务器文件各种操作 文件上传下载 文件目录 创建删除
  • 前言:如果未搭建FTP服务器请先搭建 文章包含了对FTP服务器的操作有以下几种(暂以前三种做说明) 删除文件 下载文件 上传文件 获取当前目录下明细(包含文件和文件夹) 获取FTP文件列表(包括文件夹) 获取当前目录下...

    前言:如果未搭建FTP服务器请先搭建
    文章包含了对FTP服务器的操作有以下几种(暂以前三种做说明)
    删除文件
    下载文件
    上传文件
    获取当前目录下明细(包含文件和文件夹)
    获取FTP文件列表(包括文件夹)
    获取当前目录下文件列表(不包括文件夹)
    判断当前目录下指定的文件是否存在
    创建文件夹
    获取指定文件大小
    更改文件名
    移动文件
    切换当前目录

    更改情况

    下面的获取指定文件夹里面的文件列表代码错误 更改为如下:

            /// <summary>  
            /// 获取指定文件夹下文件列表(不包括文件夹)  
            /// </summary>  
            public string[] GetFileList(string mask, string dirName)
            {
                string[] downloadFiles = null;
                StringBuilder result = new StringBuilder();
                FtpWebRequest reqFTP;
                try
                {
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + dirName));
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
                    WebResponse response = reqFTP.GetResponse();
                    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
    
                    string line = reader.ReadLine();
                    while (line != null)
                    {
                        if (mask.Trim() != string.Empty && mask.Trim() != "*.*")
                        {
    
                            string mask_ = mask.Substring(0, mask.IndexOf("*"));
                            if (line.Substring(0, mask_.Length) == mask_)
                            {
                                result.Append(line);
                                result.Append("\n");
                            }
                        }
                        else
                        {
                            result.Append(line);
                            result.Append("\n");
                        }
                        line = reader.ReadLine();
                    }
                    if (result.Length == 0)
                        return new string[] { };
                    result.Remove(result.ToString().LastIndexOf('\n'), 1);
                    reader.Close();
                    response.Close();
                    downloadFiles = result.ToString().Split('\n');
                }
                catch (Exception ex)
                {
                    return new string[] { };
                }
    
                if (downloadFiles == null)
                    downloadFiles = new string[] { };
                return downloadFiles;
            }
    

    步骤

    1. 创建winform项目
    2. 添加FTPHelper类
    3. 添加控件
    4. 添加控件的事件
    5. 实现操作

    创建winform项目

    在这里插入图片描述
    在这里插入图片描述

    添加FTPHelper类

    解决方案中右击鼠标项目文件 新建一个类
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在类里面添加下面的核心代码
    以下代码包含了对FTP服务器常用的操作
    例如上传文件到FTP服务器 从FTP服务器上下载文件 删除FTP服务器上的文件等
    注意需要添加的命名空间有
    using System.Net;
    using System.IO;
    using System.Windows.Forms;
    using System.Text.RegularExpressions;

      #region 字段
            string ftpURI;
            string ftpUserID;
            string ftpServerIP;
            string ftpPassword;
            string ftpRemotePath;
            #endregion
    
            /// <summary>  
            /// 连接FTP服务器
            /// </summary>  
            /// <param name="FtpServerIP">FTP连接地址</param>  
            /// <param name="FtpRemotePath">指定FTP连接成功后的当前目录, 如果不指定即默认为根目录</param>  
            /// <param name="FtpUserID">用户名</param>  
            /// <param name="FtpPassword">密码</param>  
            public FTPHeper(string FtpServerIP, string FtpRemotePath, string FtpUserID, string FtpPassword)
            {
                ftpServerIP = FtpServerIP;
                ftpRemotePath = FtpRemotePath;
                ftpUserID = FtpUserID;
                ftpPassword = FtpPassword;
                //ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/";
                ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath;
            }
    
            /// <summary>  
            /// 上传  filename是本地图片的地址
            /// </summary>   
            public void Upload(string filename)
            {
                FileInfo fileInf = new FileInfo(filename);
                FtpWebRequest reqFTP;
                reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileInf.Name));
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
                reqFTP.KeepAlive = false;
                reqFTP.UseBinary = true;
                reqFTP.ContentLength = fileInf.Length;
                int buffLength = 2048;
                byte[] buff = new byte[buffLength];
                int contentLen;
                FileStream fs = fileInf.OpenRead();
                try
                {
                    Stream strm = reqFTP.GetRequestStream();
                    contentLen = fs.Read(buff, 0, buffLength);
                    while (contentLen != 0)
                    {
                        strm.Write(buff, 0, contentLen);
                        contentLen = fs.Read(buff, 0, buffLength);
                    }
                    strm.Close();
                    fs.Close();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    
            /// <summary>  
            /// 下载  filePath是下载到本机的地址fileName是需要下载的文件的名字
            /// </summary>   
            public void Download(string filePath, string fileName)
            {
                try
                {
                    FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
                    FtpWebRequest reqFTP;
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName));
                    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
                    reqFTP.UseBinary = true;
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    Stream ftpStream = response.GetResponseStream();
                    long cl = response.ContentLength;
                    int bufferSize = 2048;
                    int readCount;
                    byte[] buffer = new byte[bufferSize];
                    readCount = ftpStream.Read(buffer, 0, bufferSize);
                    while (readCount > 0)
                    {
                        outputStream.Write(buffer, 0, readCount);
                        readCount = ftpStream.Read(buffer, 0, bufferSize);
                    }
                    ftpStream.Close();
                    outputStream.Close();
                    response.Close();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    
            /// <summary>  
            /// 删除服务器的文件  fileName是需要删除的文件的名字
            /// </summary>  
            public void Delete(string fileName)
            {
                try
                {
                    FtpWebRequest reqFTP;
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName));
                    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    reqFTP.Method = WebRequestMethods.Ftp.DeleteFile;
                    reqFTP.KeepAlive = false;
                    string result = String.Empty;
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    long size = response.ContentLength;
                    Stream datastream = response.GetResponseStream();
                    StreamReader sr = new StreamReader(datastream);
                    result = sr.ReadToEnd();
                    sr.Close();
                    datastream.Close();
                    response.Close();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    
            /// <summary>  
            /// 获取当前目录下明细(包含文件和文件夹)  
            /// </summary>  
            public string[] GetFilesDetailList()
            {
                try
                {
                    StringBuilder result = new StringBuilder();
                    FtpWebRequest ftp;
                    ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
                    ftp.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                    WebResponse response = ftp.GetResponse();
                    StreamReader reader = new StreamReader(response.GetResponseStream());
                    string line = reader.ReadLine();
                    line = reader.ReadLine();
                    line = reader.ReadLine();
                    while (line != null)
                    {
                        result.Append(line);
                        result.Append("\n");
                        line = reader.ReadLine();
                    }
                    result.Remove(result.ToString().LastIndexOf("\n"), 1);
                    reader.Close();
                    response.Close();
                    return result.ToString().Split('\n');
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    
            /// <summary>  
            /// 获取FTP文件列表(包括文件夹)
            /// </summary>   
            private string[] GetAllList(string url)
            {
                List<string> list = new List<string>();
                FtpWebRequest req = (FtpWebRequest)WebRequest.Create(new Uri(url));
                req.Credentials = new NetworkCredential(ftpPassword, ftpPassword);
                req.Method = WebRequestMethods.Ftp.ListDirectory;
                req.UseBinary = true;
                req.UsePassive = true;
                try
                {
                    using (FtpWebResponse res = (FtpWebResponse)req.GetResponse())
                    {
                        using (StreamReader sr = new StreamReader(res.GetResponseStream()))
                        {
                            string s;
                            while ((s = sr.ReadLine()) != null)
                            {
                                list.Add(s);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw (ex);
                }
                return list.ToArray();
            }
    
            /// <summary>  
            /// 获取当前目录下文件列表(不包括文件夹)  
            /// </summary>  
            public string[] GetFileList(string url)
            {
                StringBuilder result = new StringBuilder();
                FtpWebRequest reqFTP;
                try
                {
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(ftpPassword, ftpPassword);
                    reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                    WebResponse response = reqFTP.GetResponse();
                    StreamReader reader = new StreamReader(response.GetResponseStream());
                    string line = reader.ReadLine();
                    while (line != null)
                    {
    
                        if (line.IndexOf("<DIR>") == -1)
                        {
                            result.Append(Regex.Match(line, @"[\S]+ [\S]+", RegexOptions.IgnoreCase).Value.Split(' ')[1]);
                            result.Append("\n");
                        }
                        line = reader.ReadLine();
                    }
                    result.Remove(result.ToString().LastIndexOf('\n'), 1);
                    reader.Close();
                    response.Close();
                }
                catch (Exception ex)
                {
                    throw (ex);
                }
                return result.ToString().Split('\n');
            }
    
            /// <summary>  
            /// 判断当前目录下指定的文件是否存在  
            /// </summary>  
            /// <param name="RemoteFileName">远程文件名</param>  
            public bool FileExist(string RemoteFileName)
            {
                string[] fileList = GetFileList("*.*");
                foreach (string str in fileList)
                {
                    if (str.Trim() == RemoteFileName.Trim())
                    {
                        return true;
                    }
                }
                return false;
            }
    
            /// <summary>  
            /// 创建文件夹  
            /// </summary>   
            public void MakeDir(string dirName)
            {
                FtpWebRequest reqFTP;
                try
                {
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + dirName));
                    reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    Stream ftpStream = response.GetResponseStream();
                    ftpStream.Close();
                    response.Close();
                }
                catch (Exception ex)
                { }
            }
    
            /// <summary>  
            /// 获取指定文件大小  
            /// </summary>  
            public long GetFileSize(string filename)
            {
                FtpWebRequest reqFTP;
                long fileSize = 0;
                try
                {
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + filename));
                    reqFTP.Method = WebRequestMethods.Ftp.GetFileSize;
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    Stream ftpStream = response.GetResponseStream();
                    fileSize = response.ContentLength;
                    ftpStream.Close();
                    response.Close();
                }
                catch (Exception ex)
                { }
                return fileSize;
            }
    
            /// <summary>  
            /// 更改文件名  
            /// </summary> 
            public void ReName(string currentFilename, string newFilename)
            {
                FtpWebRequest reqFTP;
                try
                {
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + currentFilename));
                    reqFTP.Method = WebRequestMethods.Ftp.Rename;
                    reqFTP.RenameTo = newFilename;
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    Stream ftpStream = response.GetResponseStream();
                    ftpStream.Close();
                    response.Close();
                }
                catch (Exception ex)
                { }
            }
    
            /// <summary>  
            /// 移动文件  
            /// </summary>  
            public void MovieFile(string currentFilename, string newDirectory)
            {
                ReName(currentFilename, newDirectory);
            }
    
            /// <summary>  
            /// 切换当前目录  
            /// </summary>  
            /// <param name="IsRoot">true:绝对路径 false:相对路径</param>   
            public void GotoDirectory(string DirectoryName, bool IsRoot)
            {
                if (IsRoot)
                {
                    ftpRemotePath = DirectoryName;
                }
                else
                {
                    ftpRemotePath += DirectoryName + "/";
                }
                ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/";
            }
            
            /// <summary>  
            /// 删除ftpURI目录下指定的文件夹  
            /// </summary>   
            public void deleteDir(string dirName)
            {
                FtpWebRequest reqFTP;
                try
                {
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + dirName));
                    reqFTP.Method = WebRequestMethods.Ftp.RemoveDirectory;
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    Stream ftpStream = response.GetResponseStream();
                    ftpStream.Close();
                    response.Close();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    

    添加控件

    添加三个按钮button1 button2 button3

    在这里插入图片描述

    添加控件事件

    private void button1_Click(object sender, EventArgs e)
            {
            	//第二个参数为“” 意味着默认FTP的根目录 (上面新建的FTPHeper类的代码中有说明)
                FTPHeper fTPHeper = new FTPHeper("FTP服务器的IP地址", "", "FTP用户名", "FTP密码");
                //将本地路径为C:\Users\小何程序员\Desktop\截图\2021-01\devenv_Ji9KAmB1mJ.png 的图片上传到服务器根目录中
                fTPHeper.Upload(@"C:\Users\小何程序员\Desktop\截图\2021-01\devenv_Ji9KAmB1mJ.png");
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                FTPHeper fTPHeper = new FTPHeper("FTP服务器的IP地址", "", "FTP用户名", "FTP密码");
                //在FTP服务器根目录中将名字为devenv_Ji9KAmB1mJ.png的图片文件下载到本地D:\develop_files\c#_windorms_for_vs_file位置中
                fTPHeper.Download(@"D:\develop_files\c#_windorms_for_vs_file", "devenv_Ji9KAmB1mJ.png");
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                FTPHeper fTPHeper = new FTPHeper("FTP服务器的IP地址", "", "FTP用户名", "FTP密码");
                //删除FTP服务器根目录中名字为devenv_Ji9KAmB1mJ.png的图片文件
                fTPHeper.Delete("devenv_Ji9KAmB1mJ.png");
            }
    

    实现操作

    运行项目 即可远程操作服务器

    展开全文
  • C#FTP操作:上传、下载、在服务器上创建文件夹、删除服务器上文件
  • 本篇文章主要介绍了Apache FTP实现文件上传、下载、修改文件名、删除,实现了FTP文件上传(断点续传)、FTP文件下载、FTP文件重命名、FTP文件删除等功能,有需要的可以了解一下。
  • FTP 550 Permission denied 只能建文件夹,没法删除及上传文件的解决方法,需要的朋友可以参考下。
  • 一种ftp文件上传下载删除操作的方法,支持将文件或图片上传至ftp服务器,支持从FTP服务器下载图片。
  • 可以轻松地将它放在U盘里,邮箱里,网盘里,或者网站随时下载,这样,就有了一个可以随身携带的FTP服务器软件。 功能说明: 1、提供文件(文件夹)的下载、上传、删除、改名功能。 2、支持多用户访问,可以设置...
  • reqFTP = (FtpWebRequest)WebRequest.Create(new Uri(_ftpUri));...地址为:ftp://10.134.73.116/OAUpFile/DesignReply/11111/attachment没有问题,代码貌似也木有问题,我可以删除文件但是删不了文件夹
  • 有时候我们想将本地的备份文件放到别的服务器上,实现异地备份,更安全,那么就可以参考下面的方法
  • 前几天,写了一篇关于如何上传图片保存至FTP服务器的文章,今天继续把上传到FTP服务器的图片下载下来,在页面中进行显示。也就是满足了我们日常代码demo中,页面需要动态加载的图片的实例的实现。(不再需要手动把...

    前几天,写了一篇关于如何上传图片保存至FTP服务器的文章,今天继续把上传到FTP服务器的图片下载下来,在页面中进行显示。也就是满足了我们日常代码demo中,页面需要动态加载的图片的实例的实现。(不再需要手动把图片保存在WebContent下static静态文件夹下哈哈哈,相信很多初学小伙伴为了实现这种效果都是这么干的)
    要点:前端通过ajax提交请求、Controller层ftp服务器路径的获取、本地路径的设置。

    1. html页面

    <html>
    <head>
    <title>获取FTP服务器上的图片</title>
    <meta charset="utf-8">
    </head>
    <body>
    <div>
    	 <a onclick="details();">家庭成员情况</a>
    </div>
    
    <div>
    	<table>
    		<tr>
    			<td>
    				<label>男方照片:</label>
    			</td>
    			<td>
    				<img id="boy"  alt="加载失败" height="50px" weight="50px" >
    			</td>
    		</tr>
    		<tr>
    			<td>
    				<label>女方照片:</label>
    			</td>
    			<td>
    				<img id="girl"  alt="加载失败" height="50px" weight="50px" >
    			</td>
    		</tr>
    	</table>
    </div>
    <script type="text/javascript">
    		function details() {
    		var jtbm = document.getElementById("e_jt").value;
    		$.ajax({
    			type : 'POST',
    			url : //请求controller的路径
    			data : {jt : jtbm},
    			success : function (d){
    
    				//请求成功,给照片处可以用下面的方法给src属性赋值
    				$("#boy").attr('src',d.map['boy']);
    				$("#girl").attr('src',d.map['girl']);
    			}
    		})
    	}
    </script>
    </body>
    </html>
    

    注意:Html代码中没有太多注意事项,完成一个请求就OK。

    2.Controller层代码

    看代码之前也看这么一个请求过程:
    当你在浏览器点击 发起一个请求 后,服务器端此时并没有图片,它只有(或者是他只能读取到)你在数据库中保存的图片路径,它需要继续向ftp服务器发送请求,把图片下载到本地服务器(Tomcat),前端页面通过寻找Tomcat中下载后保存的路径,才能够在页面上展现。
    当你在浏览器点击 发起一个请求 后,服务器端此时并没有图片,它只有(或者是他只能读取到)你在数据库中保存的图片路径,它需要继续向ftp服务器发送请求,把图片下载到本地服务器(Tomcat),前端页面通过寻找Tomcat中下载后保存的路径,才能够在页面上展现。

    
    	@RequestMapping("你的请求路径")
    	@ResponseBody
    	public ResponseModel findOne(String jt, HttpServletRequest request) {
    	    //获取项目发布后的路径,该方法可以获取到根目录。
    		localPath = request.getSession().getServletContext().getRealPath("");
    		System.out.println(localPath);
    
    		//ResponseModel是自己封装的一个SpringMVC aJax返回对象
    		ResponseModel model = new ResponseModel();
    
                /*此部分代码为业务逻辑处理,目的是为了通过传过来的 jt 获取到对应的保存在数据库中的图片路径
                  可忽略我的这部分代码,做你自己的逻辑处理,拿到图片路径即可
                  因为数据库中图片我们都只是保存的图片路径,而不是图片!!!*/
    			Object fms = daoHandler.findOne(FMSModel.class, jt);
    			MraModel mra = new MraModel();
    			Condition condition = new SimpleCondition();
    			System.out.println("==============....=");
    			condition.andEqual("JT_BH", jt);
    			System.out.println("============....===");
    
    			List<MraModel> list = (List<MraModel>) daoHandler.find(MraModel.class, condition);
    			System.out.println(list.get(0).getJtbh());
    			for(MraModel mm : list){
    				System.out.println(mm.getNfsfzfj());
    				boy = mm.getNfsfzfj();
    				System.out.println(mm.getNvfsfzfj());
    				girl = mm.getNvfsfzfj();
    				break;
    			}
    
                /*  业务逻辑处理结束 */
                /* 下面才是今天的重点 */
    			//从ftp服务器下载图片到 -- 服务器
    	
    	        //FtpConection为一个封装的工具类,下文可以看到代码
    			FtpConection conection = new FtpConection(ftp服务器地址, ftp服务器端口, ftp服务器用户名, ftp服务器密码);
    			
    			Map<String,String> map = new HashMap<String,String>();
    			//包含进文件名
    			if(boy != null){ //boy 保存的是从数据库中读取到的路径值,和你前面的业务逻辑处理有关。
    				
    				String hPath = "\\tempfiles\\"+boy; //在发布到本地tomcat后中保存的路径
    				String jsPath = "../../tempfiles/"+boy; //在前端页面取值时 的路径
    				localPath = localPath+hPath; //完整的本地路径
    				
    				boolean flag = conection.downloadFile(boy, localPath);
    				if (flag){
    					System.out.println("下载成功!");
    				}else{
    					System.out.println("下载 error");
    				}
    				map.put("boy",jsPath);
    			}
    			if(girl != null){
    				localPath = request.getSession().getServletContext().getRealPath("");
    				String hPath = "\\tempfiles\\"+girl;
    				String jsPath = "../../tempfiles/"+girl;
    				localPath = localPath+hPath;
    				System.out.println(localPath);
    				boolean flag = conection.downloadFile(girl, localPath);
    				if (flag){
    					System.out.println("下载成功!");
    				}else{
    					System.out.println("下载 error");
    				}
    				map.put("girl",jsPath);
    			}
    			
    			model.setObject(fms);
    			model.setMap(map);
    			model.success();
    		} catch (Exception e) {
    			e.printStackTrace();
    			model.error(e.getMessage());
    		}
    		return model;
    	}
    
    

    注意:

    • 1 request.getSession().getServletContext().getRealPath("")可以获取到项目发布后的路径,也就是为了 前端能顺利拿到图片,从ftp下载下来的图片必须保存在这个根目录下的某个文件夹
    • 2 String hPath = “\tempfiles\”+boy; //在发布到本地tomcat后中保存的路径
      String jsPath = “…/…/tempfiles/”+boy; //在前端页面取值时 的路径
      hPath就是发布到本地tomcat下中的某个路径,但在windows系统中,路径中 使用 “”,但在编译的项目中前端那图片路径中, 使用的是"/"。(注意这两个斜杠的方向)jsPath就是为了前台取值方便,直接通过jsPath就可以拿到值。
    • 3 至于jsPath为什么写成 …/…/这种形式,是因为发布后的项目,你当前的页面的位置和你保存的图片的位置不在同一个文件夹,通过 …/寻找上一级目录,然后走到保存图片的位置。
    • 4 最后把图片路径通过map键值对返回到前端页面

    3. 辅助工具类之 FtpConection

    /**
     * FTP服务器连接,用于访问FTP服务器,实现常用的创建目录、删除目录、上传文件、下载文件等操作。
     */
    public class FtpConection {
    	
    	/**
    	 * 文件上次的缓存区大小
    	 */
    	private static final int BUF_SIZE = 1024*1024;
    	private Logger logger = LoggerFactory.getLogger(FtpConection.class);
    
    	private String hostname;
    	private Integer port;
    	private String username;
    	private String password;
    	
    	FTPClient client;
    
    	/**
    	 * 创建一个与FTP服务器的连接。
    	 * @param url 服务器IP地址
    	 * @param prot 服务端口
    	 * @param username 用户名
    	 * @param password 密码
    	 */
    	public FtpConection(String url, Integer prot, String username, String password) {
    		this.hostname = url;
    		this.port = prot;
    		this.username = username;
    		this.password = password;
    		client = new FTPClient();
    		try {
    			client.connect(hostname, port);
    		} catch (SocketException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    			logger.error("FtpConection:链接FTP服务器发生异常!");
    		}
    		
    		try {
    			client.login(username, password);
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    			logger.error("FtpConection:登陆FTP服务器发生异常!");
    		}
    	}
    	
    	/**
    	 * 获得原始的FTPClient对象
    	 * @return FTPClient对象
    	 */
    	public FTPClient getClient() {
    		return client;
    	}
    
    	/**
    	 * 测试连接和登录是否成功
    	 * @return Boolean值,true-连接并登录成功,false-连接超时或登录失败。
    	 */
    	public boolean isConnected() {
    		boolean result = false;
            int reply = client.getReplyCode();
            String info = null;
            switch (reply) {
    		case 0:
    			info = "连接超时!";
    			break;
    		case 230:
    			info = "连接成功,登陆成功!";
    			result = true;
    			break;
    		case 530:
    			info = "用户名或密码错误!";
    			break;
    		}
            logger.info(info);
    		return result;
    	}
    
    	
    	/**
    	 * 上传文件
    	 * @param localPath 本地文件路径(含文件名)
    	 * @param serverPath FTP服务器存储路径(含文件名)
    	 * @return Boolean值,true-上传成功,false-上传失败(文件存在或目录错误)。
    	 * @throws IOException
    	 */
    	public boolean uploadFiles(String localPath, String serverPath) throws IOException {
    		boolean result = false;
    
    		client.setFileType(FTP.BINARY_FILE_TYPE);
    		client.enterLocalPassiveMode();
    		client.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
    		client.setBufferSize(BUF_SIZE);
    		
    		InputStream local = null;
    		try {
    			local = new FileInputStream(localPath);
    			result = client.storeFile(serverPath, local);
    		} finally {
    			if (local != null) {
    				local.close();
    			}
    		}
    	
    		return result;
    	}
    
    
    	/**
    	 * 利用流 上传文件
    	 * @param in 本地流
    	 * @param serverPath 服务器路径
    	 * @return True 文件上传成功,False 文件上传失败
    	 * @throws IOException
    	 */
    	public boolean uploadFiles(InputStream in, String serverPath) throws IOException {
    		boolean result = false;
    
    		client.setFileType(FTP.BINARY_FILE_TYPE);
    		client.enterLocalPassiveMode();
    		client.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
    		client.setBufferSize(BUF_SIZE);
    		
    		InputStream local = null;
    		try {
    			local = in;
    			result = client.storeFile(serverPath, local);
    		} finally {
    			if (local != null) {
    				local.close();
    			}
    		}
    	
    		return result;
    	}
    
    	/**
    	 * 下载文件
    	 * @param serverPath FTP服务器文件路径(含文件名)
    	 * @param localPath 本地存储文件路径(含文件名)
    	 * @return Boolean值,true-下载成功,false-下载失败(文件目录不存在或文件不存在)。
    	 * @throws IOException
    	 */
    	public boolean downloadFile(String serverPath, String localPath) throws IOException {
    		boolean result = false;
    
    		client.setFileType(FTP.BINARY_FILE_TYPE);
    		client.enterLocalPassiveMode();
    		client.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
    		client.setBufferSize(BUF_SIZE);
    		
    		OutputStream local = null;
    		try {
    			local = new FileOutputStream(localPath);
    			result = client.retrieveFile(serverPath, local);
    		} finally {
    			try {
    				local.close();
    			} catch (Exception e) {
    				// 本地目录不存在,下载失败。
    				logger.error("FTP 下载文件在本地保存出现异常,本地路径不存在!");
    				return false;
    			}
    		}
    		
    		return result;
    	}
    
    	
    	/**
    	 * 退出已登录的FTP用户
    	 * @return Boolean值,true-退出成功,false-退出失败(连接为登录)。
    	 * @throws IOException
    	 */
    	public boolean logout() throws IOException {
    		return client.logout();
    	}
    }
    

    4.辅助工具类之ResponseModel

    
    /**
     * Spring MVC AJAX response 返回对象
     * 
     *
     */
    public class ResponseModel implements Serializable {
    	private static final long serialVersionUID = -446626533112009414L;
    	
    	public static final String EMSG_SYS_ERROR 		= "服务器错误。";
    	public static final String EMSG_SUCCESS   		= "成功完成。";
    
    	public static final String STATUS_SYS_ERROR 		= "0";
    	public static final String STATUS_SUCCESS   		= "1";
    	public static final String STATUS_NO_PERMISSIONS 	= "2";
    	public static final String STATUS_UNKNOW_INPUT 		= "3";
    	public static final String STATUS_NO_LOGIN			= "4";
    
    	public static final String KEY_LIST 	= "list";
    	public static final String KEY_OBJECT 	= "obj";
    	public static final String KEY_MAP	 	= "map";
    
    
    	/**
    	 * 服务器响应状态(0:服务器错误|1:正确完成|2:权限不足|3:未知输入数据)
    	 */
    	private String status;
    	/**
    	 * 服务器错误信息
    	 */
    	private String emsg;
    	/**
    	 * 服务器响应数据
    	 */
    	private Map<String, Object> data;
    
    	public ResponseModel() {
    		super();
    		data = new HashMap<String, Object>();
    	}
    
    	public ResponseModel(String status, String emsg) {
    		this();
    		this.status = status;
    		this.emsg = emsg;
    	}
    
    	public String getStatus() {
    		return status;
    	}
    
    	public String getEmsg() {
    		return emsg;
    	}
    
    	public Map<String, Object> getData() {
    		return data;
    	}
    
    	public String getVersion() {
    		return version;
    	}
    
    	@Override
    	public String toString() {
    		return "ResponseModel [status=" + status + ", emsg=" + emsg + ", data="
    				+ data + "]";
    	}
    
    	/**
    	 * 成功完成。
    	 */
    	public ResponseModel success() {
    		this.success(EMSG_SUCCESS);
    		return this;
    	}
    
    
    
    	/**
    	 * 向返回Model中添加键/值数据。(默认调用success())
    	 * @param key
    	 * @param value
    	 */
    	public void put(String key, Object value) {
    		this.data.put(key, value);
    		this.success();
    	}
    
    	/**
    	 * 向返回Model中添加键/值数据。
    	 * @param key
    	 * @param value
    	 * @param isSuccess 是否成功返回。
    	 */
    	public void put(String key, Object value, boolean isSuccess) {
    		this.data.put(key, value);
    		if (isSuccess) {
    			this.success();
    		}
    	}
    	
    	public Object get(String key) {
    		return data.get(key);
    	}
    	
    	
    	/**
    	 * 向返回Model中添加对象。(使用默认的key[KEY_OBJECT],默认调用success()。)
    	 * @param obj
    	 */
    	public void setObject(Object obj) {
    		this.put(KEY_OBJECT, obj);
    		this.success();
    	}
    	
    	/**
    	 * 向返回Model中添加Map对象。(使用默认的key[KEY_MAP],默认调用success()。)
    	 * @param map
    	 */
    	public void setMap(Map<?, ?> map) {
    		this.put(KEY_MAP, map);
    		this.success();
    	}
    }
    
    

    至于你的项目发布后,各个文件夹的相对位置可以通过右键项目–》 Properties --》Deployment Assembly 查看
    查看项目发布后的路径

    原创文章,未经作者允许,严禁转载!
    文章:如何上传文件图片至FTP 服务器

    展开全文
  • java删除ftp文件.txt

    2019-06-05 16:06:14
    通过java代码来实现对ftp服务器文件删除操作
  • winform实现FTP上传、下载、删除文件。自己写的Demo,亲测可用!
  • 访问ftp服务器没显示文件

    千次阅读 2021-08-10 01:45:16
    访问ftp服务器没显示文件 内容精选换一换在本地主机和Windows弹性云服务器分别安装QQ.exe等工具进行数据传输。使用远程桌面连接mstsc方式进行数据传输。该方式不支持断点续传,可能存在传输中断的情况,因此不建议...
  • 通过ftp服务器上传下载删除文件分享.pdf
  • 上传到FTP服务器上的本地文件保存 可配置 如果服务器不存在该文件,则自动创建目录;如果删除本地文件,则自动创建文件删除(可配置;测试版-请报告任何问题。如果发生任何问题,可以通过在全局设置...
  • * FTP服务器文件目录 * @param filename * 文件名称 * @param localpath * 下载后的文件路径 * @return */ public static boolean downloadAllFile(String hostname, int port, String username, String ...
  • 可以轻松地将它放在U盘里,邮箱里,网盘里,或者网站随时下载,这样,就有了一个可以随身携带的FTP服务器软件。 功能说明: 1、提供文件(文件夹)的下载、上传、删除、改名功能。 2、支持多用户访问,可以设置...
  • java 连接 FTP 文件操作(上传,下载,删除,复制.zipjava 连接 FTP 文件操作(上传,下载,删除,复制.zip
  • 计算机如何搭建FTP服务器参考https://jingyan.baidu.com/article/08b6a5916e885214a8092288.html 本程序参考链接:https://blog.csdn.net/dzweather/article/details/51429107
  • c#操作FTP服务器

    2018-05-16 12:04:32
    搭建好FTP服务器后,使用.NET对FTP服务器进行新建文件夹,修改文件夹,删除文件夹,上传文件,查询文件是否存在,替换更新文件删除文件等等操作
  • 在WINFORM 框架下,实现对FTP服务器的图片上传,在线浏览和删除操作。 本代码为本人原创,希望对大家有帮助。
  • ⑤ 使用递归实现:本地文件上传FTP服务器里的文件夹 第二章:相关问题 ① 上传的文件名包含中文【'utf-8' codec can't decode byte ...】 ② 指定的路径存在问题【550 The system cannot find the file specified.】
  • 整个FTP服务器就是一个EXE可执行程序,无需任何安装,不修改注册表,删除时直接删除所有相关文件就行了。程序放在任何目录均可运行。这是一个小巧灵活的FTP服务器工具,占用系统资源少,可以方便网友间传输文件交流...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 130,374
精华内容 52,149
关键字:

删除ftp服务器上的文件

友情链接: Recover4all.rar