win10用资源管理器打开FTP不能删除文件?

win10用资源管理器打开FTP不能删除文件?,第1张

遇到了同样的问题,经过研究自己已经顺利解决。

在win10系统打开ftp文件夹,右键点击空白处,选择“登录”,输入用户名密码之后点击“登录”之后,就可以正常操作删除文件了。

平时浏览、复制文件无需登录,删除操作是需要“登录”一下才可以的。

命令 描述

ABOR 中断数据连接程序

ACCT <account> 系统特权帐号

ALLO <bytes> 为服务器上的文件存储器分配字节

APPE <filename> 添加文件到服务器同名文件

CDUP <dir path> 改变服务器上的父目录

CWD <dir path> 改变服务器上的工作目录

DELE <filename> 删除服务器上的指定文件

HELP <command> 返回指定命令信息

LIST <name> 如果是文件名列出文件信息,如果是目录则列出文件列表

MODE <mode> 传输模式(S=流模式,B=块模式,C=压缩模式)

MKD <directory> 在服务器上建立指定目录

NLST <directory> 列出指定目录内容

NOOP 无动作,除了来自服务器上的承认

PASS <password> 系统登录密码

PASV 请求服务器等待数据连接

PORT <address> IP 地址和两字节的端口 ID

PWD 显示当前工作目录

QUIT 从 FTP 服务器上退出登录

REIN 重新初始化登录状态连接

REST <offset> 由特定偏移量重启文件传递

RETR <filename> 从服务器上找回(复制)文件

RMD <directory> 在服务器上删除指定目录

RNFR <old path> 对旧路径重命名

RNTO <new path> 对新路径重命名

SITE <params> 由服务器提供的站点特殊参数

SMNT <pathname> 挂载指定文件结构

STAT <directory> 在当前程序或目录上返回信息

STOR <filename> 储存(复制)文件到服务器上

STOU <filename> 储存文件到服务器名称上

STRU <type> 数据结构(F=文件,R=记录,P=页面)

SYST 返回服务器使用的操作系统

TYPE <data type> 数据类型(A=ASCII,E=EBCDIC,I=binary)

USER <username>> 系统登录的用户名

这就是FTP协议的命令集,是有删除指令的,我们老师以前让我们自己对照着自己编写过FTP协议,删除文件时候不分文件或者文件夹的,只要路径正确就可以删除,跟你电脑上点右键删除东西一样,如果是文件夹,内部所有也都会删除的。

文件夹删不掉的一种很大的可能,是你的文件夹里还有文件没有清空,而你的ftp工具设置的是不能删除未清空的文件夹。

你以前可以删除,是你的设置对了,可能后来设置有变动。

不知道你用的什么ftp工具,到选项里查看一下改一下设置。

C:\Program Files (x86)\National Instruments\LabVIEW 2015\vilib\FTP

FTP1里有DELE命令,FTP2里有命令行,可以自己编写

一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法、下载文件的通用方法以及删除文件、在ftp服务器上传文件夹、检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,

(1):Java FTP主文件代码:

package ftpDemo;

import javaioDataOutputStream;

import javaioInputStream;

import javaioOutputStream;

import sunnetTelnetInputStream;

import sunnetTelnetOutputStream;

import sunnetftpFtpClient;

public class ftpUtil {

// 上传文件至FTP通用方法

public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){

try {

String ftpHost = kmConfiggetFtpHost();

int port = kmConfiggetFtpPort();

String userName = kmConfiggetFtpUser();

String passWord = kmConfiggetFtpPassword();

String path = kmConfiggetFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClientlogin(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClientbinary();

ftpClientcd(path);// path为FTP服务器上保存上传文件的路径。

TelnetOutputStream telnetOut = ftpClientput(fileName);// fileName为上传的文件名

DataOutputStream dataOut = new DataOutputStream(telnetOut);

byte buffer[] = new byte[ ];

int count = ;

while ((count = isread(buffer)) != -) {

dataOutwrite(buffer, , count);

}

telnetOutclose();

dataOutclose();

ftpClientcloseServer();

} catch (Exception e) {

Systemoutprintln("上传文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

}

// 删除文件至FTP通用方法

public static void deleteFileFtp(KmConfig kmConfig,String fileName){

try {

String ftpHost = kmConfiggetFtpHost();

int port = kmConfiggetFtpPort();

String userName = kmConfiggetFtpUser();

String passWord = kmConfiggetFtpPassword();

String path = kmConfiggetFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClientlogin(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClientbinary();

ftpClientcd(path);// path为FTP服务器上保存上传文件的路径。

try {

ftpClientsendServer("dele " + fileName + "\r\n");

} catch (Exception e) {

Systemoutprintln("删除文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

ftpClientcloseServer();

} catch (Exception e) {

Systemoutprintln("删除文件失败!");

}

}

// 下载ftp文件

public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){

try {

String ftpHost = kmConfiggetFtpHost();

int port = kmConfiggetFtpPort();

String userName = kmConfiggetFtpUser();

String passWord = kmConfiggetFtpPassword();

String path = kmConfiggetFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClientlogin(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClientbinary();

ftpClientcd(path);// path为FTP服务器上保存上传文件的路径。

try {

TelnetInputStream in = ftpClientget(fileName);

byte[] bytes = new byte[];

int cnt=;

while ((cnt=inread(bytes,,byteslength)) != -) {

outputStreamwrite(bytes, , cnt);

}

outputStreamclose();

inclose();

} catch (Exception e) {

ftpClientcloseServer();

eprintStackTrace();

}

ftpClientcloseServer();

} catch (Exception e) {

Systemoutprintln("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

}

//在ftp服务器上传件文件夹

public boolean createDir(String path,FtpClient ftpClient) throws Exception{

//进入到home文件夹下

ftpClientcd("/home");

//创建远程文件夹

//远程命令包括

//USER  PORT  RETR  ALLO  DELE  SITE  XMKD  CDUP  FEAT<br>

//     PASS  PASV  STOR  REST  CWD   STAT  RMD   XCUP  OPTS<br>

//     ACCT  TYPE  APPE  RNFR  XCWD  HELP  XRMD  STOU  AUTH<br>

//     REIN  STRU  SMNT  RNTO  LIST  NOOP  PWD   SIZE  PBSZ<br>

//     QUIT  MODE  SYST  ABOR  NLST  MKD   XPWD  MDTM  PROT<br>

//        在服务器上执行命令,如果用sendServer来执行远程命令(不能执行本地FTP命令)的话,所有FTP命令都要加上/r/n<br>

//          ftpclientsendServer("XMKD /test/bb/r/n"); //执行服务器上的FTP命令<br>

//          ftpclientreadServerResponse一定要在sendServer后调用<br>

//          nameList("/test")获取指目录下的文件列表<br>

//          XMKD建立目录,当目录存在的情况下再次创建目录时报错<br>

//          XRMD删除目录<br>

//          DELE删除文件<br>

//通过远程命令 穿件一个files文件夹

ftpClientsendServer("MKD "+ path + "\r\n");

//这个方法必须在 这两个方法中间调用 否则 命令不管用

ftpClientbinary();

ftpClientreadServerResponse();

return false;

}

/

检查文件夹是否存在

@param dir

@param ftpClient

@return

/

public boolean isDirExist(String dir, FtpClient ftpClient) {

try {

ftpClientcd(dir);

} catch (Exception e) {

return false;

}

return true;

}

}

(2):KmConfigjava代码如下:定义FTP服务器参数,包括登录的用户名密码之类的。

package ftpDemo;

public class KmConfig {

//主机ip

private String FtpHost = "";

//端口号

private int FtpPort;

//ftp用户名

private String FtpUser = "";

//ftp密码

private String FtpPassword = "";

//ftp中的目录

private String FtpPath = "";

public String getFtpHost() {

return FtpHost;

}

public void setFtpHost(String ftpHost) {

FtpHost = ftpHost;

}

public int getFtpPort() {

return FtpPort;

}

public void setFtpPort(int ftpPort) {

FtpPort = ftpPort;

}

public String getFtpUser() {

return FtpUser;

}

public void setFtpUser(String ftpUser) {

FtpUser = ftpUser;

}

public String getFtpPassword() {

return FtpPassword;

}

public void setFtpPassword(String ftpPassword) {

FtpPassword = ftpPassword;

}

public String getFtpPath() {

return FtpPath;

}

public void setFtpPath(String ftpPath) {

FtpPath = ftpPath;

}

}

(3):下面是测试代码:

FTP服务器传输或编辑失败一般有几种情况:

文件损失,不完整,导致传输过程验证失败。

文件使用中,比如在杀毒或者编辑中的文件,系统占用是不能传输的。

权限不足,比如针对某些用户,是不能传输部分文件的,比如exe等风险文件。

特殊情况,比如文件传输过程中,目录满了,存储失败,这个是由服务器管理员控制的,如果目录体积不够文件传输的,联系管理员协商解决。

有用户反映在网络空间中通过连接FTP来上传文件资料,但是后来发现无法删除里面的文件夹,点击删除的话会出现没有反应,文件依然存在,或者无法删除的情况。如果大家在电脑系统中遇到了相同的问题,可以参考一下本教程中介绍的方法。

1、FTP正常登录,点击删除文件夹;

2、但会出现无法删除的情况,文件夹依旧存在;

3、点击顶部的菜单栏“网络”,勾选“显示FTP中的隐藏文件”;

4、开启隐藏文件功能之后,再次右击删除选中的文件夹;

5、等程序运行之后,就可以看到文件夹已经被正常删除了。

6、相关的设置也有可能位于“查看”——“过滤器”中;

7、在弹出窗口中,找到“服务器端过滤”,勾选“启用服务器端过滤服务器应用过滤”,并在下方远程过滤输入“-a”,点击确定。

按照以上步骤进行设置即可解决电脑中网络空间出现FTP无法删除文件夹的问题。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » win10用资源管理器打开FTP不能删除文件?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情