2016-09-12 6 views
0

(Hello World Level Automation Tester)Java의 타임 스탬프 받기

현재 다운로드 할 수있는 테스트 사례가 많습니다.

로그인>> 선택 다운로드> 다운로드> 컴퓨터에있는 파일의 이름을 바꿉니다>를

그럼 내가 그들을 검사 한 후이 파일을 정리하기 위해 다른 클래스 파일에서 자바 코드의 작은 비트를 엽니 다.

여기에 나와있는 문제는 이름을 바꾸기 전에 파일을 열어서 타임 스탬프를 사용한다는 것입니다. 오늘 아침에 들어 와서, 타임 스탬프 차이가 5 초가 걸렸음을 깨달았습니다. 타임 스탬프를 잡아서 10 초의 범위를 정할 수 있습니까? - 그래도 조금 벗어난 경우에도 찾을 수 있습니다.

지금 당장 나는 if else 문을 가지고 있는데, 올바른 타임 스탬프를 얻으면 이름을 바꿉니다. 그렇지 않으면 타임 스탬프 (-1 초)에서 -1을 얻습니다. 그런 식으로 찾으십시오. 나는 또한 정수/긴 아닌 캐릭터라면 난 아직 디렉토리의 일환으로 타임 스탬프를 추가 할 수 있는지 여부를 물어보고 싶은게

String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss").format(Calendar.getInstance().getTime()); 
    oK.click(); 
    System.out.println(timeStamp); 
    Thread.sleep(500); 
    File fileName = new File("C:/Users/User/Downloads/" + timeStamp + (".csv")); 
    File newName = new File("C:/Users/User/Downloads/File.csv"); 
    if (fileName.renameTo(newName)) { 
     System.out.println("File was renamed"); 
    } 
    else 
    { 
     long timeStampLong = Long.parseLong(timeStamp); 
     long completeStamp = timeStampLong - 1; 
     String completeString = Long.toString(completeStamp); 
     File fileNameNew = new File("C:/Users/User/Downloads/" + completeString + (".csv")); 
     fileNameNew.renameTo(newName); 
     System.out.println("File was renamed after conversion"); 
    } 

.... 그것보다 더 경우 작동하지 않는 이유는 무엇입니까?

또한 내가 원하는대로 할 수있는 방법이 무엇인지 모르겠다. 지금은 디렉토리에없는 파일과 같은 오류를 잡는 방법을 잘 모르고있다. 다음에 다른 것을 추가 할 수 없습니까? 아니면 할 수 있습니까?

설명이 필요하면 알려주세요. :)

String timeStampString = new SimpleDateFormat("yyyyMMddHHmmss").format(Calendar.getInstance().getTime()); 
    Long timeStampLong = Long.getLong(timeStampString); 
    String newName = "allPi"; 
    File[] files = getMatchingFiles(fileName, timeStampLong, 50000); 
    System.out.println(files); 
    for (File file:files) { 
     file.renameTo(new File(universal + "/Downloads/" + newName)); 
    } 

친절 감사,

M

내가 이해 당신이 읽을 필요 location.Then, 당신이 ok.click() 저놈 다운로드 대상에서 csv 파일에서 파일을 다운로드하는부터

답변

1

파일 이름을 변경하십시오.

나는 "마지막으로 수정 한"방식으로 진행하는 것이 좋습니다. 따라서 일정 기간 동안 작성된 모든 파일을 가져 와서 이름을 바꿀 수 있습니다.

는 다음을 시도해보십시오

public static File[] getMatchingFiles(String workingDirectory,final long timestamp,final long threshold){ 
    File directoryWithFiles= new File(workingDirectory); 

    return directoryWithFiles.listFiles(new FilenameFilter() { 
     public boolean accept(File dir, String filename){ 
      File file=new File(dir+File.separator+filename); 
      if(file.isFile()){ 
       if(file.lastModified()<=timestamp && file.lastModified() >(timestamp-threshold)){ 
        return true; 
       } 
      } 
      return false; 
     } 
    }); 
} 

WORKINGDIRECTORY : 다운로드 위치를.
타임 스탬프 : 다운로드 시작 시간.
임계 값 : 일부 오프셋이 추가 된 다운로드 평균 시간.

그러면이 스 니펫은 주어진 범위에서 생성 된 모든 파일을 가져옵니다. 수면 범위를 늘리면이 범위에서 항상 단일 파일을 가져옵니다.

는 다음과 같은 방법을 사용

File[] files=getMatchingFiles("dir",100000000,50000); 

for(File file:files){ 
    file.renameTo(new File("<renamed File path>")) 
} 
+0

네, 감사합니다,하지만 난 지금 내 필요한 이름으로 해당 파일의 이름을 변경 가야 그것이 얼마나, 내가 renameTo을 사용할 수 있도록 수없는 것? – MG97

+0

업데이트 된 답변을 참조하십시오. – Rambler

+0

이제 나는 이것을 얻습니다. [Ljava.io.File; @ 1d9b7cce 나는 뭔가를 배우는 동안 그것을 기억하고있는 것을 변환해야한다고 생각하는데, 그것이 무엇인지 압니까? 나는 또한 그것이 내가 이해하는 것으로부터 찾고있는 것이기 때문에 대답으로 수여했습니다. 감사합니다. – MG97

관련 문제