토탈 커맨더의 문제점 한가지... 가 이미 해결되었군요. ^^;;


사실 제목은 떡밥성입니다. 왜냐하면 이것은 토탈커맨더만의 문제라고 보기에는 조금 무리가 있으니까요. 하지만 마침 밸리에도 토탈커맨더에 관한 포스팅이 올라와있고 해서 한번 써봅니다.

저는 이전 포스트 '파일관리자의 변천사'에서도 밝혔듯이, 토탈커맨더가 윈도우커맨더라는 이름이었을때부터 사용해온 나름 올드유저입니다만, 최근에 와서 아쉬운점을 하나 발견했습니다. 정확히 말하면, 토탈커맨더에게 문제가 생긴걸 발견했다기보다는 기본 파일관리자인 윈도우 탐색기에서 그 점을 개선했기 때문에 상대적으로 토탈커맨더가 문제인것처럼 보여진 것이지요.

서론이 길었습니다만, 간단한 내용입니다. 바로 정렬에 관한 문제입니다.

예를 들어 1.txt, 2.txt, 3.txt, ... 이런식의 파일들이 주욱 있다고 가정한후, 파일명으로 정렬을 시키면 당연히 1,2,3,.. 순으로 파일이 정렬됩니다. 그런데 만약 1~9까지가 아닌 1~99 까지의 파일이 있다고 할때에는 문제가 생겨버리죠. 

이런 경우, 정렬을 하게 되면, 1, 10, 11, 12, ... 이런 순으로 정렬이 됩니다. 아마 같은 문제를 겪으셨던 분들은 제가 하려는 말이 무슨 얘기인지 잘 아실겁니다. 그렇기 때문에 00, 01, 02, ... 이런 식으로 빈 자리수에 0을 집어넣는 방식으로 파일명을 정하기도 합니다.


단순히 보는것이라면 정렬방식이 큰 문제가 되지 않지만, 리스트를 순서대로 진행하는 작업이라면(대표적으로 순서대로 드라마를 본다던가, 음악을 듣는다던가 하는) 이것이 문제가 됩니다. 에피소드 11이 에피소드 2 보다 앞에 위치하게 되는 현상이 벌어지는 것이죠. (많은 파일이름 변환소프트웨어와 MP3 리핑프로그램이 자리수에 맞춰 0을 넣어주는 기능을 제공하는것은 바로 이러한 이유에서죠.)

그럼 이게 왜 이럴까요?

프로그래밍을 하시는 분이라면 아마 금방 아실테지만... 

저것은 sort 함수의 callback 에서 strcmp로 문자열을 비교해서 리턴해버리기 때문에 저렇게 되어버리는것입니다. 다시 말하면 strcmp 함수가 2.txt 와 10.txt 를 비교하면 2.txt 가 더 크다는 의미의 1 을 리턴하기 때문이죠. 

그렇지만 사람이 생각하는 통념상, 1.txt 는 10.txt 보다 분명 앞에 있어야 하는것이 맞지요.


글의 서두에서 말씀드렸듯이, 이미 윈도우 탐색기는 저러한 '사람과 기계가 생각하는 정렬방식의 차이'를 수정한 상태입니다. (사실 문제의 해결방법은 간단할 수도 또 생각하기에 따라서는 복잡할 수도 있습니다.)

윈도우 탐색기는 파일리스팅을 전통적인 FindFirstFile() 방식으로 처리하지 않고 Shell Object 방식으로 처리하기 때문에 이 부분에 대한 처리는 아마도 그 쪽에서 해주었을것으로 예상됩니다. 

어찌보면 사소한 부분이지만, 개인적으로 고쳐졌으면 하는 부분이기도 합니다.

<본문 추가> 트랙백의 원글님이신 NuRi 님께서 정렬옵션이 추가되었다면서 알려주셨습니다.

Configuration -> Options -> Display -> Sort Method (한글판 기준, 환경설정 - 옵션 - 화면 - 정렬 방식) 에서 4가지 정렬 방식을 지정할 수 있더군요. 여기서 '문자코드와 숫자 순으로 자연스럽게' 또는 '알파벳순과 숫자 순으로 자연스럽게' 옵션을 선택하시면 자연스럽게 정렬이 되는군요. (자세한 내용은 아래 링크로...)



좀더 옵션을 찾아보고 포스팅하는건데... ㅠ.ㅠ 혹시 모르셨을 분들을 위해 글은 그냥 두겠습니다 ~

by 우주인 | 2009/04/20 05:17 | 프로그래밍 일반 | 트랙백 | 핑백(1) | 덧글(11)

트랙백 주소 : http://woojooin.egloos.com/tb/1896652
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at 나의 작은 공간^^ : 토탈 .. at 2013/03/04 16:49

... http://woojooin.egloos.com/1896652Configuration -&gt; Options -&gt; Display -&gt; Sort Method (한글판 기준, 환경설정 - 옵 ... more

Commented by theadadv at 2009/04/20 05:31
전 그런건 별 신경안쓰는데...
대신 탐색기는
A(K).txt,
A1(K).txt가 있을 때,
A1(K).txt
A(K).txt
순으로 보여줍니다.
a-.txt, a1-.txt에서도 마찬가지.
커멘더에선 보다 이해하기 쉬운 순서로 보여주죠...
Commented by 우주인 at 2009/04/20 05:38
본문에서 언급했듯 커맨더의 문제라기 보다는 문자열 비교방식에서 오는 차이죠. 두 문자열의 길이는 무시하고 앞에서부터 순서대로만 비교하기때문에 오는 결과랄까 ?

사실 커맨더에서는 별 문제가 안됩니다. 그냥 보여지기만 하는거니까요~
Commented by theadadv at 2009/04/20 06:07
전 탐색기의 저 순서가 1. 11.보다 더 귀찮아서리 말입니다. 개인적으로 괄호같은 것을 많이 쓰는데, 숫자를 안붙인 녀석이 항상 맨 밑에 가는 것이 짜증나서요.

근데, 커멘더는 보여지기만 한다해도 실제 파일 처리는 저 소팅된 순서대로 해주지 않습니까? 압축을 하거나 파일을 이동하거나 할 때 보여지는 소팅 순서로 작업을 하는 걸로 압니다만.
Commented by 우주인 at 2009/04/20 06:22
theadadv 님처럼 괄호등의 특수문자로 네이밍을 할경우에는 확실히 탐색기의 정렬방식이 더 불편할것 같군요. 탐색기도 완전히 인간친화적인것은 아니군요~ ㅎ

두번째는 정렬된 순서로 작업을 하죠. 그치만 복사나 압축이 순서가 미디어 파일 순차재생같이 순서가 중요한 작업은 아니니까요.

어쨌건 새벽 포스팅에 방문해주시니 감사합니다~ ㅎㅎㅎ
Commented by NuRi at 2009/04/20 06:26
안녕하세요.
이문제는 토탈 커맨더에서 이미 해결되었습니다. ^^;

Configuration -> Options -> Display -> Sort Method
여기서 Natural Sorting : alphabetical and numbers를 선택하면 사람이 인식하는 정렬방식으로 정렬합니다. 토탈 커맨더에서 정렬은 총 4가지 방법이 있으니 입맛대로 골라서 쓰시면 된답니다.
Commented by 우주인 at 2009/04/20 06:29
엇... 원글님이 납시셨군요... ^^

그렇군요~ 옵션이 추가되었군요~

좋은 정보 감사합니다. ㅎㅎ
Commented by 우주인 at 2009/04/20 06:39
새벽 포스팅임에도 불구, 좋은 정보 주신 분들께 감사드립니다~
Commented by 토커매니아 at 2009/04/20 16:15
오래전부터 제공되던 옵션입니다.
참고하세요.
http://xpg.in/forum/viewtopic.php?p=592#592
Commented by 우주인 at 2009/04/20 16:20
넵, 감사합니다.
Commented by windam at 2009/04/20 17:42
안녕하세요. 밸리보고 인사드립니다.

저역시 Total commander 정품유저고

여태...multi rename tool로 고쳐서 사용했었는데 -_-;;

좋은 정보 감사합니다. :-)
Commented by 우주인 at 2009/04/20 17:59
넵~ 방문 감사합니다. ㅎㅎㅎ

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶