File tree Expand file tree Collapse file tree
Sources/FoundationEssentials/FileManager Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -71,9 +71,9 @@ extension _FileManagerImpl {
7171 let temporaryItemsDirectory = temporaryDirectory. appending ( component: " TemporaryItems " , directoryHint: . isDirectory)
7272 let referenceDirectory = reference. deletingPathExtension ( )
7373 let useTemporaryDirectory : Bool
74- if let temporaryVolumeIdentifier = try ? temporaryDirectory . resourceValues ( forKeys : [ . volumeIdentifierKey ] ) . volumeIdentifier ,
75- let referenceVolumeIdentifier = try ? reference . resourceValues ( forKeys : [ . volumeIdentifierKey ] ) . volumeIdentifier {
76- useTemporaryDirectory = temporaryVolumeIdentifier. isEqual ( referenceVolumeIdentifier)
74+ if let temporaryVolumeIdentifier = systemNumber ( for : temporaryDirectory ) ,
75+ let referenceVolumeIdentifier = systemNumber ( for : reference ) {
76+ useTemporaryDirectory = temporaryVolumeIdentifier == referenceVolumeIdentifier
7777 } else {
7878 useTemporaryDirectory = !fileManager. isWritableFile ( atPath: referenceDirectory. path)
7979 }
@@ -91,6 +91,14 @@ extension _FileManagerImpl {
9191 attempt += 1
9292 }
9393 }
94+
95+ func systemNumber( for url: URL ) -> UInt ? {
96+ guard let attributes = try ? fileManager. attributesOfItem ( atPath: url. path) ,
97+ let value = attributes [ . systemNumber] else {
98+ return nil
99+ }
100+ return _readFileAttributePrimitive ( value, as: UInt . self)
101+ }
94102 }
95103
96104 private func itemReplacementDirectoryName( forAttempt attempt: Int ) -> String {
You can’t perform that action at this time.
0 commit comments