현재 두 개의 폴더의 모든 내용을 처리하는 빠른 스크립트를 Ruby에 작성하고있는 모든 파일의 목록을 반환합니다 두 폴더 중 하나에 없습니다. 현재 제가 배열의 각 디렉토리의 모든 파일의 경로를 저장하는 일을 오전 :두 폴더의 내용을 비교하고 두 폴더에있는 같은 이름의 파일을 제거하십시오.
Find.find(dir1) do |path|
if File.file?(path)
directory1_files << path # Add path to an array of file_paths for the 1st directory.
end
end # I repeat the process for the second directory and store their paths in an array called directory2_files.
오전 데 문제는 내가 (큰 배열 - 작은 배열을) 두 개의 배열을 시도하고 뺄 때 나머지 파일을 얻으려면 빈 배열이 나옵니다. 이유는 전체 경로가 단지 basename 대신 감해 지려고하기 때문입니다. 예 : ~/folder1/file.txt! = ~/folder2/file.txt 같은 이름의 파일이 두 개의 폴더에있는 경우 어떻게 찾을 수 있습니까? 두 폴더에 모두 있습니까?
이것은'~ dir1/file.txt'와'~ dir2/subdir1/file.txt'가 중첩 된 디렉토리에서는 작동하지 않지만 상대 경로는 같은 것으로 간주됩니다. –
File.basename()에서는 경로가 무시됩니다. 디렉토리 부분이없는 파일 이름 만 리턴합니다. File.basename ('~/dir1/file.txt')과 File.basename ('~/dir2/subdir1/file.txt') 모두 'file.txt'를 반환합니다. – Alkaline