0

짧고 긴 파일 이름을 독립적으로 선택한 디렉토리가있는 SDHC 카드 (FAT32)를 만들어야합니다. 예 : 내 목표는 가능해야하므로 짧은 파일 이름 MYDIR하지만 위키 백과을 바탕으로 긴 이름 i am a cool name. yeah. check out the awesomeness.은 두 이름 사이에 필수 상관 관계가 없다 :FAT32 : 긴 파일 이름과 8.3 파일 이름을 별도로 설정하십시오.

LFN에서 8.3 이름을 만들기위한 필수 알고리즘은 없다

-http://en.wikipedia.org/wiki/8.3_filename#Overview

나는이 (윈도우, 맥, 리눅스, 16 진수 편집기)하지만, 쉽게 더 잘 할 필요한 시스템을 사용할 수 있습니다. 감사!

+0

API를 사용하고 있습니까? 그렇다면 어느 것입니까? 그렇지 않다면, 아마도 StackOverflow가 이것을 물어볼 적절한 장소가 아닙니다. –

+0

NTFS에서 fsutil setshortname을 사용하여이 작업을 수행 할 수 있습니다. http://technet.microsoft.com/en-us/library/bb490642.aspx – AlcubierreDrive

답변

1

짧은 파일 이름은 언급 한 알고리즘을 사용하여 LFN에서 자동으로 강제로 생성됩니다. (또한 FAT32 specifications에 자세히 설명되어 있습니다). 이 작업은 파일 시스템 드라이버 (적어도 Windows 및 Linux)에서 수행됩니다. 권장하지 않는 드라이버를 수정하지 않으면 실제로 변경할 수 없습니다. 한 디렉토리에서만이 작업을 수행하려는 경우 같은 이름의 중복 항목을 만들지 않도록 16 진 편집기에서 디스크 이미지를 수정하여이 작업을 수행 할 수 있습니다. 여기

내가 리눅스에 뭘하려 :

#dd if=/dev/zero of=fatImage bs=1048576 count=256 
#mkfs.vfat -F 32 fatImage 
#mount -o loop fatImage /mnt 
#cd /mnt 
#mkdir ThisIsALongDirectoryName 

지방 드라이버는 디렉토리에 대한 짧은 이름을 생성합니다 야그 ~ 1. 두 이름을 모두 사용하여 액세스 할 수 있습니다.

#cd /mnt/ThisIsALongDirectoryName 
#cd /mnt/THISIS~1 

그런 다음 파티션을 마운트 해제 후, 나는 16 진수 편집기 (KDE에 Okteta)에서 이미지를 연 SFN 항목 야그 ~ 1, 검색 및 MYNEWDIR로 교체. 또한 각 32 바이트 LFN 하위 항목은 SFN 13의 체크섬을 오프셋 13에 저장합니다. calculate에이 0xFF의 THISIS ~ 1 (0xA6) 의 체크섬을 MYNEWDIR (0x6A)의 체크섬으로 바꾸어야했습니다. 모든 LFN 하위 항목. 수정 사항을 저장 한 후 이미지를 다시 마운트하고 이전 LFN 및 새 SFN을 사용하여 디렉토리에 액세스 할 수있었습니다.

#cd /mnt/ThisIsALongDirectoryName 
#cd /mnt/MYNEWDIR 
+0

당신은 이것을 시도했다고 말합니다. 어떤 도구를 사용 했습니까? 지시 사항이 있으십니까? 궁극적으로 실패하더라도, 나는 나 자신을 위해 노력하고 싶다. 감사! :) – AlcubierreDrive

+1

@JonRodriguez 사실, 내가 설명한 것을 모두 수행 할 수 있습니다. 업데이트 된 답변을 참조하십시오. – itisravi

+0

환상적 !! 고맙습니다! – AlcubierreDrive

0

위키 백과에서 기술 참조로 사용하지 않을 것입니다. Microsoft의 설명서를 참조하는 것이 좋습니다. 이것에 관해서는 두 파일 사이에 관계가있을 수 있다고 생각합니다. 따라서이 두 파일을 만지면 좋습니다. 짧은 이름을 사용하는 것이 더 나을 것입니다.

+0

감사. 읽은 것을 발견 한 문서를 인용 해 주시겠습니까? – AlcubierreDrive

+2

http://msdn.microsoft.com/en-us/library/windows/hardware/gg463080.aspx의 FAT32 사양은 좋은 시작입니다. – Rob