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

时间:2012-12-20 19:02:46

标签: 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       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

1 个答案:

答案 0 :(得分:0)

解决 - 基本上Filezilla不允许在文件名中转义空格,也不显示空格。因此,自定义命令DEL " filename.log"会引发文件未找到的错误。

文件在名称前面有不同数量的空格,可能在使用JDatePicker后输入表单。

使用其他FTP客户端删除文件。