#Haskell

import System.Directory

main :: IO ()

main = do

files1 <- listDirectory "/path1"

files2 <- listDirectory "/path2"

let missingFiles = filter (`notElem` files2) files1

mapM_ putStrLn missingFiles

#Scheme

#lang racket

(define path1-files (directory-list "/path1"))

(define path2-files (directory-list "/path2"))

(for-each (lambda (f)

(unless (member f path2-files) (displayln f)))

path1-files)

#Prolog

list_missing_files :-

directory_files('/path1', Files1),

directory_files('/path2', Files2),

subtract(Files1, Files2, MissingFiles),

print_list(MissingFiles).

print_list([]).

print_list([H|T]) :-

write(H), nl, print_list(T).

#Erlang

-module(missing_files).

-export([list/0]).

list() ->

Files1 = filelib:wildcard("/path1/*"),

Files2 = filelib:wildcard("/path2/*"),

MissingFiles = Files1 -- Files2,

lists:foreach(fun(File) -> io:format("~p~n", [File]) end, MissingFiles).

#Lisp

(let ((files1 (directory "/path1/*.*"))

(files2 (directory "/path2/*.*")))

(dolist (f files1)

(unless (member f files2 :test #'string=)

(print f))))

#Forth

: list-files ( addr1 addr2 -- )

\ Here, you'd write a series of words that

\ 1. Enumerate files in addr1

\ 2. For each file in addr1, check if it exists in addr2

\ 3. Print out the file if it doesn't exist in addr2

;

"/path1" "/path2" list-files

Reply to this note

Please Login to reply.

Discussion

No replies yet.