Windows에서 폴더를 삭제하고 폴더 내의 파일 수에 비례하여 시간이 걸리지 않는 방법이 있습니까?
예, 파티션을 포맷하십시오. 나는 지난 9 년 동안 아무도 그 제안을하지 않았다는 것에 약간 놀랐습니다.
상당히 급진적이지만 특정 폴더에 대해이 작업을 자주 수행 할 것으로 예상되는 경우 별도의 파티션을 만드는 것이 좋습니다.
그것이 너무 급진적이라면, 다른 대답은 당신의 유일한 희망입니다. serverfault 에 대한 좋은 설명이 있습니다 . Linux 및 XFS 파일 시스템 용이지만 동일한 논리가 여기에 적용됩니다. 내장 OS 기능을 많이 향상시킬 수는 없습니다.
그러나 삭제하려는 모든 파일의 경로를 알고 있으면 디렉토리 내용을 나열하는 호출을 저장하고 직접 제거를 호출하여 약간의 오버 헤드를 저장할 수 있습니다. 그래도 여전히 파일 수에 비례합니다.
개인적으로, 나는 프로그램이 죽지 않았다는 것을 확신하기 위해 진보 보고서 중 일부를 좋아합니다. 그래서 나는 파이썬을 통해 물건을 삭제하고 싶습니다. 예를 들어, 모든 파일이 하위 디렉토리없이 하나의 디렉토리에있는 경우 :
import tqdm
import sys
import os
location = sys.argv[1]
directory = os.fsencode(location)
with os.scandir(directory) as it:
for dir_entry in tqdm.tqdm(it):
try:
os.remove(dir_entry.path)
except OSError:
pass # was not a file
12 살짜리 SEAGATE ST3250620NS에서 약 250 개의 파일이 삭제됩니다. 나는 그것이 당신의 드라이브에서 훨씬 빠를 것이라고 가정합니다.
그러나이 시점에서 그것은 단지 미세 최적화입니다. 따라서 하나의 디렉토리에 수백만 개의 파일이 없으면 큰 도움이되지 않습니다. (나처럼, lol, 내가 D를 한 일 :)