2012-10-26 4 views
-1

저는 최근에 정확한 HD TV, 필립스 47PFL4307H/12를 구입했습니다.알파벳 순으로 일치하는 마지막 수정 된 순서

필름과 TV 시리즈 컬렉션을보기 위해 USB에 외장 하드 디스크를 연결했지만 파일 순서가 잘못되었습니다. 지원 서비스에 연락하여 TV가 알파벳순이 아닌 마지막으로 수정 된 순서대로 파일을 나열한다고 말했습니다.

저는 자바 프로그래머입니다 : 폴더에서 모든 파일을 가져 와서 수정 한 순서로 알파벳 순서와 일치하도록 수정하는 소프트웨어를 작성하고 싶습니다.

나는 웹에서 이미 작성된 소프트웨어 조각을 검색해 보았지만, 아마도 어떤 키워드를 사용해야할지 모르겠다. 나는이 질문과 동일한 제목을 Google에 쓰려고했지만 아무것도하지 않았다. - 알파벳순으로 수정 "하고 아무 것도.

내 질문은 : 그렇게하는 소프트웨어를 알고 있습니까? 그렇다면 당신은 저쪽으로 나를 가르 칠 수 있습니까? 이 소프트웨어의 존재를 모르는 경우 직접 프로그래밍 할 수 있습니까? 나는 이미 자바 프로그램을 만들고로드하고 파일을 쓰는 방법을 알고있다. 내가 모르는 것은 "마지막으로 수정 된"타임 스탬프를 변경해야만하는 것이다. 이름을 바꿔라? 확장자를 변경 하시겠습니까? 속성을 변경하십시오 (해당되는 경우).

안드레아

EDIT 감사 : 좋아, 나는 방법 "setLastModified"를 발견했다. (I 희망!) ... 그 존재에 대한 루프에 대한 간단한 이제

을 몰랐하고 문제가 사라질 것

답변

0

File.setLastModified 당신이 원하는 일을하지 않습니다? 개인적으로 나는 이것을 망쳐 놓고 데이터를 망치고 싶지는 않겠지 만, 확실히 일 수 있습니다. 알파벳 순으로 정렬하고 그 시간에 따라 타임 스탬프를 지정하십시오. (어쩌면 2000 년 1 월 1 일부터 시작해서 항목 당 하루를 더할 수 있습니다. 1 월 1 일, 1 월 2 일, 1 월 3 일 등).

+1

그것은 내가 찾은 같은 일이 일을 할 수 줄 수있는 명령을 찾을 수있는 경우입니다. 왜이 방법이 데이터를 망칠까요? – Andrea

+0

@Andrea : 글쎄요, 당신이 원하는 정렬 순서 인 데이터로 * 유용한 * 데이터 (당신이 무언가를 녹음했을 때)를 대체하고 있습니다. Ick. –

+0

@jonskeet setLastModified는 파일의 데이터를 변경하지 않고 inode를 변경합니다. 파일을 복사하면 변경됩니다. –

1

좋아요, 나는 "setLastModified"메소드를 발견했습니다. ... 그 존재에 대한 루프에 대한 간단한 이제

을 몰랐하고 문제가 사라질 것 (I 희망!)

+0

덧글으로 추가하십시오 - 대답이 없습니다 –

+0

setlastmodified 파일의 수정 시간을 변경합니다. 나는 당신이 단지 마지막으로 수정 한 시간을 가져다가 그것에 따라 정렬하고 싶다고 생각했다. –

+0

Bhavik은 기본적으로 CCCCC.avi (2012 년 10 월 수정), BBBBB.avi (2012 년 9 월 수정), AAAAAA.avi (2012 년 4 월 수정) : AAAAAAA.avi (10/26/12 10:30), BBBBBB.avi (10/26/12 10:29), CCCCCC.avi (10/26/12 10:28) – Andrea

2

왜 간단한 쉘 스크립트를 작성하지?

#!/bin/sh 
cd $MY_DIR_OF_VIDEOS 
for i in $(ls); do 
    touch $i 
    sleep 1 
done 

이것은합니다 (ls 알파벳 종류를 사용하여) 파일 touch ES 각 하나를 (마지막으로 수정 된 날짜를 갱신)이 나열되어 있습니다. 각각 sleep을 추가하여 각각이 고유 한 타임 스탬프를 얻도록했습니다.

정기적으로 실행하려면 cron으로 예약 할 수 있습니다.

+0

이 코드를 어디에 넣고 실행해야하는지 설명해 주시겠습니까? ? 유닉스 쉘에 대해 이야기하고 있습니까? 다른 무엇입니까? – Andrea

+0

유닉스 쉘 스크립트입니다. 예. Cygwin을 사용하여이 스크립트를 실행할 수 있습니다. 위의 스크립트를 독립 실행 형 쉘 스크립트로 수정했습니다. (bin 디렉토리를 만드시겠습니까?) 그리고 cron 또는 Windows 스케줄러를 사용하여 스케줄을 지정할 수 있습니다. –

+0

Java 프로그램을 사용하여 선호합니다 ... 저는 유닉스 사용자가 아닙니다 (거의 사용하지 않습니다). 하지만 인정하는 것은 지옥처럼 쉽다. – Andrea

0

자바에서 실행하고 싶다면 dos 명령을 실행할 수 있습니다. \ t : 마지막으로 수정 한 시간의 파일을 표시하지만 시간을 추출하려면 많은 문자열 함수를 사용해야합니다. .여기에 코드

public static void main(String[] args) 
{ 
    String[] command = new String[4]; 
    command[0] = "cmd"; 
    command[1] = "/C"; 
    command[2] = "dir \t:w"; 
    command[3] = "c:\\"; 
    Process p; 
    try { 
     p = Runtime.getRuntime().exec(command); 
     BufferedReader stdInput = new BufferedReader(new 
       InputStreamReader(p.getInputStream())); 
      BufferedReader stdError = new BufferedReader(new 
       InputStreamReader(p.getErrorStream())); 
      // read the output from the command 
      String s = null; 
      System.out.println("Here is the standard output of the command:\n"); 
      while ((s = stdInput.readLine()) != null) { 
       System.out.println(s); 
      } 
      // read any errors from the attempted command 
      System.out.println("Here is the standard error of the command (if any):\n"); 
      while ((s = stdError.readLine()) != null) { 
       System.out.println(s); 
      } 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

출력

Volume in drive C has no label. 
Volume Serial Number is 0827-578F 

Directory of c:\ 

06/11/2009 03:12 AM    24 autoexec.bat 
06/11/2009 03:12 AM    10 config.sys 
07/14/2009 08:07 AM <DIR>   PerfLogs 
10/10/2012 05:34 PM <DIR>   Program Files 
10/10/2012 05:30 PM <DIR>   Users 
10/10/2012 05:31 PM <DIR>   Windows 
       2 File(s)    34 bytes 
       4 Dir(s) 76,344,885,248 bytes free 
Here is the standard error of the command (if any): 

당신이 전용 파일과 수정 시간 후이 프로그램이

+0

나는 배은망덕 한 말투는 듣고 싶지 않지만, 물론이 코드 조각은 조금 벗어난 것이 아닌가? TV 펌웨어가 그 순서에 따라 파일을 주문하기 때문에 마지막 수정 된 타임 스탬프를 변경해야합니다. 나는 당신이 단지 출력을 인쇄하고 있다고 생각합니다 ... – Andrea

+0

당신이 마지막으로 수정 된 파일을 얻고 싶다고 생각했지만 당신의 의견을 읽었습니다. 더 나은 해결책을 찾은 다음 다시 돌아올거야 –

+0

Bhavik을 걱정하지 마십시오, 어떻게 해야할지 압니다! 노력해 주셔서 감사합니다! ;) – Andrea