Добавление уникального идентификатора в файл - PullRequest
1 голос
/ 22 февраля 2011

Я Ракеш. Я разрабатываю приложение, которое должно архивировать файлы с одинаковыми именами снова и снова.Заархивированные таким образом файлы хранятся в папке.Теперь позвольте мне перейти к тому моменту, когда я хочу добавить метку времени в качестве уникального идентификатора n, где возникает проблема.Когда я даю любое нормальное значение типа int или что-то в этом роде, оно работает нормально.Выдает исключение только в случае формата даты.Я добавляю код для вас, чтобы пройти.Пожалуйста, пройдите код и сообщите мне, где я ошибаюсь.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Files 
{
public static void main(String args[])throws Exception
{   
    byte[] buf = new byte[1024];
    int len;
    int i=1;
    DateFormat df = new SimpleDateFormat("hh:mm:ss");  
    df.setTimeZone(TimeZone.getTimeZone("PST"));  
    String t=df.format(new Date());
    FileInputStream fis=new FileInputStream("e:/Xxx.java");
    File f=File.createTempFile("aaaa"+t, ".zip", new File("D:/"));
    FileOutputStream fos=new FileOutputStream(f);
    ZipOutputStream zip=new ZipOutputStream(fos);
    zip.putNextEntry(new ZipEntry( "D:/aaa"+t+".zip"));
     while ((len = fis.read(buf)) > 0) 
     {
            zip.write(buf, 0, len);

     }
    System.out.println("done");
}

}

Сообщение об исключении:

Exception in thread "main" java.io.IOException: The parameter is incorrect
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(File.java:1704)
at java.io.File.createTempFile(File.java:1792)
at Files.main(Files.java:21)

Ответы [ 3 ]

1 голос
/ 22 февраля 2011

Вам необходимо заменить двоеточия в отформатированной дате на допустимые символы, такие как тире ("-").

1 голос
/ 22 февраля 2011

Согласно эта страница , ':' не может использоваться в имени файла Windows.Измените ':' на '(или полностью избавьтесь от них), и все будет в порядке.

0 голосов
/ 22 февраля 2011

DateFormat df = new SimpleDateFormat ("чч-мм-сс");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...