File tree Expand file tree Collapse file tree 2 files changed +17
-3
lines changed Expand file tree Collapse file tree 2 files changed +17
-3
lines changed Original file line number Diff line number Diff line change @@ -712,9 +712,15 @@ extension FileManager {
712712}
713713
714714extension FileManager {
715- open var homeDirectoryForCurrentUser : URL { NSUnimplemented ( ) }
715+ open var homeDirectoryForCurrentUser : URL {
716+ return homeDirectory ( forUser: CFCopyUserName ( ) . takeRetainedValue ( ) . _swiftObject) !
717+ }
716718 open var temporaryDirectory : URL { NSUnimplemented ( ) }
717- open func homeDirectory( forUser userName: String ) -> URL ? { NSUnimplemented ( ) }
719+ open func homeDirectory( forUser userName: String ) -> URL ? {
720+ guard !userName. isEmpty else { return nil }
721+ guard let url = CFCopyHomeDirectoryURLForUser ( userName. _cfObject) else { return nil }
722+ return url. takeRetainedValue ( ) . _swiftObject
723+ }
718724}
719725
720726extension FileManager {
Original file line number Diff line number Diff line change @@ -29,7 +29,8 @@ class TestNSFileManager : XCTestCase {
2929 ( " test_pathEnumerator " , test_pathEnumerator) ,
3030 ( " test_contentsOfDirectoryAtPath " , test_contentsOfDirectoryAtPath) ,
3131 ( " test_subpathsOfDirectoryAtPath " , test_subpathsOfDirectoryAtPath) ,
32- ( " test_copyItemAtPathToPath " , test_copyItemAtPathToPath)
32+ ( " test_copyItemAtPathToPath " , test_copyItemAtPathToPath) ,
33+ ( " test_homedirectoryForUser " , test_homedirectoryForUser) ,
3334 ]
3435 }
3536
@@ -474,4 +475,11 @@ class TestNSFileManager : XCTestCase {
474475 }
475476 XCTFail ( " Copy overwrites a file/folder that already exists " )
476477 }
478+
479+ func test_homedirectoryForUser( ) {
480+ let filemanger = FileManager . default
481+ XCTAssertNil ( filemanger. homeDirectory ( forUser: " someuser " ) )
482+ XCTAssertNil ( filemanger. homeDirectory ( forUser: " " ) )
483+ XCTAssertNotNil ( filemanger. homeDirectoryForCurrentUser)
484+ }
477485}
You can’t perform that action at this time.
0 commit comments