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 {
712
712
}
713
713
714
714
extension FileManager {
715
- open var homeDirectoryForCurrentUser : URL { NSUnimplemented ( ) }
715
+ open var homeDirectoryForCurrentUser : URL {
716
+ return homeDirectory ( forUser: CFCopyUserName ( ) . takeRetainedValue ( ) . _swiftObject) !
717
+ }
716
718
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
+ }
718
724
}
719
725
720
726
extension FileManager {
Original file line number Diff line number Diff line change @@ -29,7 +29,8 @@ class TestNSFileManager : XCTestCase {
29
29
( " test_pathEnumerator " , test_pathEnumerator) ,
30
30
( " test_contentsOfDirectoryAtPath " , test_contentsOfDirectoryAtPath) ,
31
31
( " test_subpathsOfDirectoryAtPath " , test_subpathsOfDirectoryAtPath) ,
32
- ( " test_copyItemAtPathToPath " , test_copyItemAtPathToPath)
32
+ ( " test_copyItemAtPathToPath " , test_copyItemAtPathToPath) ,
33
+ ( " test_homedirectoryForUser " , test_homedirectoryForUser) ,
33
34
]
34
35
}
35
36
@@ -474,4 +475,11 @@ class TestNSFileManager : XCTestCase {
474
475
}
475
476
XCTFail ( " Copy overwrites a file/folder that already exists " )
476
477
}
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
+ }
477
485
}
You can’t perform that action at this time.
0 commit comments