"Windows 10"운영 체제에 폴더가 있습니다.폴더의 모든 파일 이름 바꾸기 (단어/숫자를 '_'로 분리)
afilename_1
bfilename_3
cfilename_2
이렇게 표시됩니다. 그러나 밑줄 뒤에 추가 된 숫자에 따라 정렬되도록해야합니다. 나는 언더 스코어 이전의 단어들뿐만 아니라 파일 설명도 묘사하고 싶다.
힌트 : 단어/숫자를 '_'로 구분하여 바꿉니다.
출력 예상 : 따로 수동 이름 바꾸기에서
1_afilename
2_cfilename
3_bfilename
어떤 생각?
P. 폴더는 100 개의 파일로 구성됩니다.
Java 프로그래밍 언어의 솔루션은 상당하지만 필수는 아닙니다.
업데이트 (10.01.2017) : 다음은 모든 파일 이름을 출력으로 가져온 것으로 파악 된 샘플 Java 코드입니다.
File folder = new File("/xxx/ss/folder/");
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles)
{ if (file.isFile())
{ System.out.println(file.getName());
} }
이제 각 파일 이름을 한 번에 가져 와서 루프에서 스와핑하는 방법을 생각해보십시오.
의견이 있으십니까?
해결책 : Windows Powershell 코드가 작동했습니다. 입력하면
:
xxx_afilename_1
xxx_bfilename_3
xxx_cfilename_2
을 다음과 같이 파일 이름은 다음 코드는 위에서 언급 한 바와 같이 유사한 출력을 얻는 데 도움이됩니다.
ls | %{ ren $_ ($_.name -replace '.*?-(.*?)-(.*?)(\..*)','$2_$1$3') }
을 유지하기 위해 그럼 당신에 정규식을 사용할 수 있습니다 파일 이름을 분리하고 필요에 따라 형식을 지정하십시오. –
당신이 그 태그를 추가 했으므로, 아마도 당신이 시도한 것을 java에 보여주십시오. –
@ 여기에 출력으로 모든 파일 이름을 얻으려는 샘플 Java 코드가 있습니다. '파일 폴더 = 새 파일 ("/ 사용자/당신/폴더 /"); File [] listOfFiles = folder.listFiles(); (파일 파일 : listOfFiles) { if (file.isFile()) { System.out.println (file.getName()); } } ' 이제 각 파일 이름을 한 번에 가져 와서 루프에서 스와핑을 수행하는 방법을 생각해보십시오. 이견있는 사람? – Varma