File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed
Sources/FoundationEssentials/FileManager Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -874,18 +874,18 @@ enum _FileOperations {
874874#else
875875 #if !canImport(Darwin)
876876 private static func _copyRegularFile( _ srcPtr: UnsafePointer < CChar > , _ dstPtr: UnsafePointer < CChar > , delegate: some LinkOrCopyDelegate ) throws {
877- var fileInfo = stat ( )
878- guard stat ( srcPtr, & fileInfo) >= 0 else {
879- try delegate. throwIfNecessary ( errno, String ( cString: srcPtr) , String ( cString: dstPtr) )
880- return
881- }
882-
883877 let srcfd = open ( srcPtr, O_RDONLY)
884878 guard srcfd >= 0 else {
885879 try delegate. throwIfNecessary ( errno, String ( cString: srcPtr) , String ( cString: dstPtr) )
886880 return
887881 }
888882 defer { close ( srcfd) }
883+
884+ var fileInfo = stat ( )
885+ guard fstat ( srcfd, & fileInfo) >= 0 else {
886+ try delegate. throwIfNecessary ( errno, String ( cString: srcPtr) , String ( cString: dstPtr) )
887+ return
888+ }
889889
890890 let dstfd = open ( dstPtr, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC, 0o666 )
891891 guard dstfd >= 0 else {
You can’t perform that action at this time.
0 commit comments