diff --git a/core/io/files/files.factor b/core/io/files/files.factor index 967f2f7913..1dd4259bb6 100755 --- a/core/io/files/files.factor +++ b/core/io/files/files.factor @@ -97,7 +97,9 @@ TUPLE: no-parent-directory path ; ] } } cond drop ; -: copy-file ( from to -- ) +HOOK: copy-file io-backend ( from to -- ) + +M: object copy-file dup parent-directory make-directories [ stdio get swap diff --git a/extra/io/windows/windows.factor b/extra/io/windows/windows.factor index ac0ede0e06..df0fd0d900 100755 --- a/extra/io/windows/windows.factor +++ b/extra/io/windows/windows.factor @@ -116,6 +116,10 @@ M: windows-io delete-file ( path -- ) normalize-pathname DeleteFile win32-error=0/f ; +M: windows-io copy-file ( from to -- ) + normalize-pathname + f CopyFile win32-error=0/f ; + M: windows-io make-directory ( path -- ) normalize-pathname f CreateDirectory win32-error=0/f ;