나는 약 500 시간을 보냈다. MSDN 문서를 읽으면 여전히 원하는대로 작동하지 않는다. 나는이 같은 파일 이름으로FileSystemInfo [] 이름으로 정렬
정렬 할 수 있습니다
01.png
02.png
03.png
04.png
을 즉 모두 동일한 파일 길이.
두 번째 파일 길이가 긴 파일이 모두 지옥에갑니다. 순서의 예를 들어
:
1.png
2.png
3.png
4.png
5.png
10.png
11.png
그것은 읽기 :이 원하지 않는
1.png, 2.png then 10.png, 11.png
.
내 코드 :
그것은 특히 파일 길이의 문제가 아니다DirectoryInfo di = new DirectoryInfo(directoryLoc);
FileSystemInfo[] files = di.GetFileSystemInfos("*." + fileExtension);
Array.Sort<FileSystemInfo>(files, new Comparison<FileSystemInfo>(compareFiles));
foreach (FileInfo fri in files)
{
fri.MoveTo(directoryLoc + "\\" + prefix + "{" + operationNumber.ToString() + "}" + (i - 1).ToString("D10") +
"." + fileExtension);
i--;
x++;
progressPB.Value = (x/fileCount) * 100;
}
// compare by file name
int compareFiles(FileSystemInfo a, FileSystemInfo b)
{
// return a.LastWriteTime.CompareTo(b.LastWriteTime);
return a.Name.CompareTo(b.Name);
}
시나리오에서 파일 이름 패턴을 변경할 수 있습니까? E.G. 1.png에서 01.png까지? –
시도해보십시오. http://stackoverflow.com/questions/1601834/c-implementation-of-or-alternative-to-strcmplogicalw-in-shlwapi-dll,'StrCmpLogicalW'는 정렬의 "마법"을 수행하는 Windows API입니다 "논리적 인"방식으로 파일 이름. – xanatos