Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式创建的相同类型和名称的文件_Java_Ftp_Filesystems - Fatal编程技术网

Java 以编程方式创建的相同类型和名称的文件

Java 以编程方式创建的相同类型和名称的文件,java,ftp,filesystems,Java,Ftp,Filesystems,我的应用程序如何上传(到FTP服务器)相同名称和类型的文件副本,而不是覆盖第一个文件 2012-11-09.log 52 Text Document 11/9/2012 8:44:00 PM -rw-rw-r-- 2012-11-09.log 49 Text Document 11/9/2012 8:41:00 PM -rw-rw-r-- 2012-11-09.log 59 Text Document

我的应用程序如何上传(到FTP服务器)相同名称和类型的文件副本,而不是覆盖第一个文件

2012-11-09.log      52  Text Document       11/9/2012 8:44:00 PM        -rw-rw-r--
2012-11-09.log      49  Text Document       11/9/2012 8:41:00 PM        -rw-rw-r--
2012-11-09.log      59  Text Document       11/9/2012 8:44:00 PM        -rw-rw-r--
2012-11-09.log      53  Text Document       11/9/2012 8:41:00 PM        -rw-rw-r--
2012-11-09.log      57  Text Document       11/9/2012 8:40:00 PM        -rw-rw-r--
我写FTP服务器的方式没有什么特别之处。下面是一个Java代码片段:

String dest = "ftp://[USERNAME]:[PASSWORD]@[FTP].com/DR/"+Util.putDateStamp() + ".log";
u = new URL(dest);
uc = u.openConnection();
uc.setDoOutput(true);
OutputStream outgoing = uc.getOutputStream();

outgoing.write(dataToSend.getBytes());
outgoing.close();
我无法重命名或删除文件,因为它会抛出错误“找不到文件”。不幸的是,我复制它的努力没有达到预期效果——它覆盖了同名的第一个文件。因此,我无法复制错误。请记住,我对FTP服务器的权限有限。它不是我的。我最后的办法是告诉管理员我不知怎么弄坏了它。这没什么大不了的,但是不知道事情是怎么发生的真的让我很烦恼。 我意识到有一个FTP命令用于在文件不唯一时重命名文件,但这不是问题所在

我的问题是:这是怎么发生的,既然我不能复制它,我怎么能避免再次这样做

来自Util的代码:

public static String putDateStamp(){
    String currentdate = "";
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    currentdate = sdf.format(cal.getTime());
    return currentdate;
}
编辑:


服务器操作系统:UNIX类型:L8

已解决-基本上Filezilla不允许在文件名中转义空格,也不显示空格。因此,自定义命令
DEL“filename.log”
抛出文件未找到错误

这些文件的名称前有不同数量的空格,可能是在使用JDatePicker后以表单形式输入的


这些文件是使用不同的FTP客户端删除的。

我猜,这种差异对您来说并不明显,但确实存在。可能是文件名中的尾随空格,或者不是很明显的大写更改。但创建所有3个文件时使用了相同的代码…没有操作系统允许您在同一目录中创建多个同名文件。这是有区别的,但我们根本看不出区别是什么。服务器运行的是哪种操作系统?你是如何得到这份名单的?此外,如果您通过FTP(从'2012-11-09.log'到'abc')在一个命令中重命名它(它们),它是重命名所有这些文件,还是仅重命名其中一个?如果您尝试重命名文件,但收到“无此类文件或目录”的提示“这是因为你的名字不对。你给的是你看到的名字,而不是它的名字。文件名中有一个字符无法通过任何方式打印。也许是时候向我们展示Util.putDateStamp()的源代码了,看看是否有任何方法可以生成一个包含奇怪字符的字符串。当我尝试重命名它们时,我得到一个“没有这样的文件或目录”。列表是使用“LIST”命令创建的。我知道这就是操作系统的工作原理。如果我可以访问它,我会检查节点ID,它们(希望)会有所不同。等一下,我要用服务器详细信息编辑我的原始帖子。。。