Đường dẫn thư mục tài liệu của Xcode Device Simulator


91

Trong iOS 7, bạn có thể tìm thấy thư mục tài liệu của trình mô phỏng iOS trong:

/Users/Sabo/Library/Application Support/iPhone Simulator/

Tuy nhiên, trong iOS 8 Beta Simulator , tôi không thể tìm thấy thư mục tương ứng cho iOS 8 trong thư mục trên.

Đường dẫn thư mục tài liệu cho Trình mô phỏng iOS 8 ở đâu?

nhập mô tả hình ảnh ở đây


Hãy thử điều này . Có một ứng dụng mở trực tiếp thư mục Documents của lần chạy ứng dụng mới nhất.
NSRover



Nếu bạn không thể tìm thấy thư mục thư viện của mình, nó có thể bị ẩn. Nhập lệnh này vào thiết bị đầu cuối sẽ hiện nó: chflags nohidden ~ / Library
simon_smiley

Nếu bạn thích plugin Xcode, hãy thử github.com/onmyway133/XcodeWay , một plugin Xcode có thể điều hướng đến thư mục trình mô phỏng của bạn và nhiều nơi khác
onmyway133

Câu trả lời:


156

trên máy tính của tôi, đường dẫn là:

~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/

LƯU Ý: có thể những ID dài (tức là UDID) khác trên máy tính của bạn.


1
Nếu ứng dụng của bạn sử dụng CoreData, có thể có một cách dễ dàng hơn để tìm kiếm vị trí thư mục: stackoverflow.com/a/25937606/1103584
DiscDev

13
Không, điều này không chính xác. Không có sự phân biệt giữa các dự án ObjC và các dự án Swift. Đó là những UDID (Unique nhận dạng thiết bị) và bạn có thể nhìn thấy bạn bằng cách chạy 'xcrun danh sách simctl'
Jeremy Huddleston Sequoia

@JeremyHuddlestonSequoia, đúng hay không, đó là cách Swift và một dự án objC được sao chép trên máy tính của tôi. Tôi không cần phải đề cập đến cả hai chỉ được biên dịch trên giả lập (đó là câu hỏi ban đầu). nếu Xcode tạo ra sự khác biệt giữa các UDID cho các ngôn ngữ khác nhau và bạn cho rằng nó không đúng, bạn có thể cần phải báo cáo cho Apple.
holex

7
Holex, tôi đang nói rằng tuyên bố của bạn là không chính xác, không phải là thiết kế không chính xác (lưu ý rằng tôi thực sự là người ở Apple đã thiết kế CoreSimulator, vì vậy tôi có thể là người đầu tiên sửa một cái gì đó ở đó mà tôi nghĩ là Sai lầm). Các UDID tương ứng với các thiết bị riêng biệt. Lý do duy nhất mà các dự án nhanh chóng và đối tượng của bạn sẽ sử dụng các UDID khác nhau là vì bạn đã triển khai các dự án của mình cho các thiết bị giả lập khác nhau (ví dụ: đối với một, bạn đã triển khai cho iPhone 5s và một là bạn đã triển khai cho iPhone 6).
Jeremy Huddleston Sequoia

@JeremyHuddlestonSequoia, rất hoan nghênh bạn sửa câu trả lời của tôi bất cứ lúc nào, nếu bạn cảm thấy đủ tự tin.
holex

76

NSLogbên dưới mã ở đâu đó trong "AppDelegate", chạy dự án của bạn và làm theo đường dẫn. Điều này sẽ giúp bạn dễ dàng truy cập tài liệu hơn là tìm kiếm ngẫu nhiên bên trong "~ / Library / Developer / CoreSimulator / Devices /"

Objective-C

NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);

Swift
Nếu bạn đang sử dụng Swift 1.2, hãy sử dụng mã bên dưới sẽ chỉ xuất ra trong quá trình phát triển khi sử dụng Trình mô phỏng vì #if #endifkhối:

#if arch(i386) || arch(x86_64)
  let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString
  NSLog("Document Path: %@", documentsPath)
#endif

Sao chép đường dẫn của bạn từ "/ Users / ankur / Library / Developer / CoreSimulator / Devices / 7BA821 ..." vào " Finder ", sau đó " Go to Folder " hoặc command+ shift+ gvà dán đường dẫn của bạn, để mac đưa bạn đến thư mục tài liệu :)


đơn giản và hiệu quả!
loretoparisi

43

Chỉ cần viết mã dưới đây trong AppDelegate -> didFinishLaunchingWithOptions
Objective C

#if TARGET_IPHONE_SIMULATOR 
// where are you? 
NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); 
#endif 


Swift 2.X

if let documentsPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first?.path {
    print("Documents Directory: " + documentsPath)   
}

Swift 3.X

#if arch(i386) || arch(x86_64)
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
        print("Documents Directory: \(documentsPath)")
    }
#endif

Swift 4.2

#if targetEnvironment(simulator)
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
        print("Documents Directory: \(documentsPath)")
    }
#endif

Đầu ra
/ Người dùng / mitul_marsonia / Thư viện / Nhà phát triển / CoreSimulator / Thiết bị / E701C1E9-FCED-4428-A36F-17B32D32918A / data / Containers / Data / Application / 25174F64-7130-4B91-BC41-AC74257CCC6E / Documents

Sao chép đường dẫn của bạn từ "/ Users / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A ..." vào "Finder" rồi "Go to Folder" hoặc command + shift + g và dán đường dẫn của bạn , để mac đưa bạn đến thư mục tài liệu của bạn


Làm cách nào để bạn biết được ứng dụng của mình chứa thư mục nào? Có quá nhiều thư mục, tôi có phải tìm kiếm từng thư mục đó không?
KarenAnne


đây là một đường dẫn được mã hóa cứng đến trình mô phỏng của riêng bạn. Nó sẽ không hoạt động cho bất kỳ ai khác. Trên thực tế, đường dẫn này cũng sẽ thay đổi đối với bạn khi bạn chạy lại trình mô phỏng.
NSRover

#if TARGET_IPHONE_SIMULATOR // bạn đang ở đâu? NSLog (@ "Thư mục Tài liệu:% @", [[[NSFileManager defaultManager] URLForDirectory: NSDocumentDirectory inDomains: NSUserDomainMask] lastObject]); #endif
Mitul Marsoniya

16

Tôi đề xuất một ứng dụng tiện ích hay có tên là SimPholder giúp bạn dễ dàng tìm thấy các tệp và thư mục trong khi phát triển ứng dụng iOS của mình. Nó có một phiên bản mới để làm việc với các trình mô phỏng mới được gọi là SimPholder2. Nó có thể được tìm thấy tại simpholder.com


Đó sẽ là một ứng dụng tuyệt vời khi Trình mô phỏng iOS8 bị chôn vùi trong sự che khuất thư mục nhưng ứng dụng đó chưa được cập nhật để hỗ trợ iOS8.
wibobm

@wibobm. SimPholders2 chắc chắn không hỗ trợ iOS 8.0 và iOS 8.1
JDibble

CHÚA ƠI. Tôi đã hoàn toàn bị mù. Cảm ơn bạn!
wibobm

16

Mặc dù thực tế là có nhiều câu trả lời, nhưng không có câu trả lời nào cung cấp hiểu biết về cấu trúc thư mục của trình mô phỏng iOS 8.3 đã thay đổi như thế nào và không cung cấp cách nhanh chóng để tìm Dữ liệu của ứng dụng (thư mục Documents).

Vì iOS 8, (các) thư mục lưu trữ Dữ liệu của Ứng dụng tách biệt với các tệp thực thi của Ứng dụng trong khi iOS 7 trở xuống có cùng cấu trúc thư mục, sự khác biệt duy nhất là tất cả các trình mô phỏng (các loại và phiên bản khác nhau) đều bây giờ trong một, thư mục lớn.

Vì vậy, đường dẫn đến trình mô phỏng iOS 8,7,6 như sau:

~/Library/Developer/CoreSimulator/Devices

Mọi trình mô phỏng hiện được chứa trong một thư mục có tên với một số nhận dạng duy nhất sẽ thay đổi ở mỗi lần đặt lại trình mô phỏng.

Bạn có thể tìm thấy mã Identifiercho từng thiết bị & trình mô phỏng của mình bằng cách đi tới Xcode > Window > Devices(3 hoặc 4 ký tự đầu tiên của mã định danh là quá đủ để nhớ).

Để tìm cái mà bạn đã cài đặt (các) ứng dụng của mình, hãy xem Run scheme > devices(màn hình 2) của bạn.

màn hình 1

màn hình 2

Bây giờ, sau khi bạn xác định trình mô phỏng của mình, tùy thuộc vào phiên bản của nó, cấu trúc thư mục rất khác nhau:

Trên iOS 8 , tệp thực thi và thư mục dữ liệu của một ứng dụng nằm trong các thư mục khác nhau:

Thực thi : ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Bundle/Application/[appID]

Thư mục Dữ liệu : ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/

Thư mục Tài liệu : ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/Documents

Trên iOS 7 trở xuống, cấu trúc thư mục vẫn giống như trước đây chỉ nhớ rằng bây giờ mọi trình mô phỏng đều nằm trong cùng một thư mục (xem ở trên).


13

Nếu ứng dụng của bạn sử dụng CoreData, một mẹo nhỏ là tìm kiếm tên của tệp sqlite bằng terminal.

find ~ -name my_app_db_name.sqlite

Kết quả sẽ liệt kê các đường dẫn tệp đầy đủ đến bất kỳ trình mô phỏng nào đã chạy ứng dụng của bạn.

Tôi thực sự ước Apple sẽ chỉ thêm một nút vào menu tệp của Trình mô phỏng iOS như "Tiết lộ thư mục Tài liệu trong Finder".


1
Gotta thích thiết bị đầu cuối.
kakubei

2
Đây có vẻ là một cách khá lâu để tìm ra điều này. Tìm kiếm toàn bộ thư mục chính của bạn?
shortstuffsushi

11

Đúng là chúng ta cần xem xét đường dẫn ~ / Library / Developer / CoreSimulator / Devices /.

Nhưng vấn đề tôi đang gặp phải là đường dẫn liên tục thay đổi mỗi khi tôi chạy ứng dụng. Đường dẫn chứa một bộ ID dài khác sau chuỗi Ứng dụng và điều đó tiếp tục thay đổi mỗi khi tôi chạy ứng dụng. Về cơ bản, điều này có nghĩa là ứng dụng của tôi sẽ không có bất kỳ dữ liệu nào được lưu trong bộ nhớ cache khi nó chạy vào lần tiếp theo.


Tôi cũng đang thấy điều này.
Nathan Jones

5
Các đường dẫn không tiếp tục thay đổi khi bạn chạy ứng dụng. Có một đường dẫn cho mỗi thiết bị mà bạn có trong thư viện của mình. Chạy 'xcrun simctl list' để xem danh sách các thiết bị và UDID của chúng để xem bạn nên xem xét thư mục con nào.
Jeremy Huddleston Sequoia,

9

Với iOS 9.2 và Xcode 7.2, tập lệnh sau sẽ mở thư mục Documents của ứng dụng được cài đặt lần cuối trên trình mô phỏng được sử dụng gần đây nhất;

cd ~/Library/Developer/CoreSimulator/Devices/
cd `ls -t | head -n 1`/data/Containers/Data/Application 
cd `ls -t | head -n 1`/Documents
open .

Để tạo một tập lệnh có thể chạy dễ dàng, hãy đặt nó vào Ứng dụng Automator với "Run Shell Script":

Chạy Shell Script bên trong Ứng dụng Automator


7

Với việc áp dụng CoreSimulator trong Xcode 6.0, các thư mục dữ liệu là trên mỗi thiết bị thay vì mỗi phiên bản. Thư mục dữ liệu là ~ / Library / Developer / CoreSimulator / Devices // dữ liệu có thể được xác định từ 'xcrun simctl list'

Lưu ý rằng bạn có thể xóa an toàn ~ / Thư viện / Hỗ trợ ứng dụng / Trình mô phỏng iPhone và ~ / Thư viện / Nhật ký / Trình mô phỏng iOS nếu bạn không có ý định quay lại Xcode 5.x hoặc sớm hơn.


Cảm ơn vì đã đưa ra những gì có thể được coi là câu trả lời có thẩm quyền. Có cách nào dễ dàng (ngoại trừ đăng nhập từ bên trong ứng dụng) để tìm vị trí của một ứng dụng cụ thể bên trong trình mô phỏng không?
fzwo

Xin lỗi, không, nhưng tôi đã thấy một vài yêu cầu cho điều này ở đây và trên các diễn đàn. Vui lòng gửi radar tại bugreport.apple.com
Jeremy Huddleston Sequoia

7

cập nhật: Xcode 11.5 • Swift 5.2

if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
    print(documentsPath)   // "var/folder/.../documents\n" copy the full path
}

Truy cập Finder của bạn, nhấn command-shift-g (hoặc Go> Go to Folder ... dưới thanh menu) và dán đường dẫn đầy đủ "var / folder /.../ Documents" vào đó và nhấn go.



4

Tôi gặp phải vấn đề tương tự khi tôi lưu trữ đường dẫn đầy đủ bằng CoreData. Khi truy xuất đường dẫn đầy đủ, nó trả về null vì UUID thư mục tài liệu khác nhau mỗi khi ứng dụng khởi động lại. Sau đây là giải pháp của tôi:

  1. Đảm bảo chỉ lưu trữ đường dẫn tương đối của tài liệu / tệp trong CoreData. Ví dụ: lưu trữ "Files / image.jpg" thay vì "/Users/yourname/.../Application/UUID/Document/Files/image.jpg".
  2. Sử dụng cách sau để truy xuất vị trí tài liệu ứng dụng:

    [[[NSFileManager defaultManager] URLForDirectory: NSDocumentDirectory inDomains: NSUserDomainMask] lastObject];

  3. Nối cả # 2 và # 1 để có đường dẫn đầy đủ của tài liệu / tệp bạn muốn truy xuất.
Bạn có thể tham khảo Ghi chú của nhà phát triển Apple: https://developer.apple.com/library/ios/technotes/tn2406/_index.html


3

Thư mục Tài liệu cho Trình mô phỏng iOS 8 ở đâu

Bạn có thể nhận thấy rằng Trình mô phỏng iPhone đã thay đổi với Xcode 6 và cùng với nó - tất nhiên - đường dẫn đến Thư mục tài liệu của ứng dụng được mô phỏng của bạn. Đôi khi chúng ta có thể cần phải xem xét nó.

Việc tìm kiếm đường dẫn đó không còn dễ dàng như trước nữa, cụ thể là Thư viện / Hỗ trợ ứng dụng / Trình mô phỏng iPhone / 7.1 / Ứng dụng / theo sau là một số khó hiểu đại diện cho ứng dụng của bạn.

Kể từ Xcode 6 và iOS 8, bạn sẽ tìm thấy nó ở đây: Thư viện / Nhà phát triển / CoreSimulator / Thiết bị / số khó hiểu / dữ liệu / Vùng chứa / Dữ liệu / Ứng dụng / số khó hiểu

http://pinkstone.co.uk/where-is-the-documents-directory-for-the-ios-8-simulator/


3

trong Appdelegate, hãy đặt mã này để xem Document và Cache Dir:

#if TARGET_IPHONE_SIMULATOR
    NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
    NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString* cachePath = [cachePathArray lastObject];
    NSLog(@"Cache Directory: %@", cachePath);
#endif

trên Nhật ký:

Thư mục tài liệu: / Users / xxx / Library / Developer / CoreSimulator / Devices / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Containers / Data / Application / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Documents /

Thư mục bộ nhớ đệm : / Users / xxx / Library / Developer / CoreSimulator / Devices / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Containers / Data / Application / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Library / Caches


3

Nếu bạn muốn đi vào các thư mục ứng dụng để xem những gì đang xảy ra và không muốn phải đi qua mê cung của UUDID, tôi đã thực hiện điều này: https://github.com/kallewoof/plget

và sử dụng nó, tôi đã thực hiện điều này: https://gist.github.com/kallewoof/de4899aabde564f62687

Về cơ bản, khi tôi muốn chuyển đến thư mục của ứng dụng nào đó, tôi thực hiện:

$ cd ~/iosapps
$ ./app.sh
$ ls -l
total 152
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 My App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/BD660795-9131-4A5A-9A5D-074459F6A4BF
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 Other App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/A74C9F8B-37E0-4D89-80F9-48A15599D404
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 My App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/07BA5718-CF3B-42C7-B501-762E02F9756E
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 Other App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/5A4642A4-B598-429F-ADC9-BB15D5CEE9B0
-rwxr-xr-x  1 me  staff  3282 Nov 14 17:04 app.sh
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/69F7E3EF-B450-4840-826D-3830E79C247A
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/976D1E91-DA9E-4DA0-800D-52D1AE527AC6
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/473F8259-EE11-4417-B04E-6FBA7BF2ED05
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/CB21C38E-B978-4B8F-99D1-EAC7F10BD894
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.otherapp-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/DE3FF8F1-303D-41FA-AD8D-43B22DDADCDE
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-7-1_iPad-Retina.dr -> simulator/4DC11775-F2B5-4447-98EB-FC5C1DB562AD/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-0_iPad-2.dr -> simulator/6FC02AE7-27B4-4DBF-92F1-CCFEBDCAC5EE/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-0_iPad-Retina.dr -> simulator/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-1_iPad-Retina.dr -> simulator/414E8875-8875-4088-B17A-200202219A34/data
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 org.cocoapods.demo.pajdeg-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/C3069623-D55D-462C-82E0-E896C942F7DE
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 simulator -> /Users/me/Library/Developer/CoreSimulator/Devices

Phần ./app.shđồng bộ các liên kết. Về cơ bản, nó luôn luôn cần thiết hiện nay vì các ứng dụng thay đổi UUID cho mỗi lần chạy trong Xcode kể từ 6.0. Ngoài ra, rất tiếc, các ứng dụng theo id gói cho 8.x và theo tên ứng dụng cho <8.


3

Dựa trên câu trả lời của Ankur nhưng đối với người dùng Swift chúng tôi:

let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
println("Possible sqlite file: \(urls)")

Đặt nó bên trong ViewDidLoad và nó sẽ in ra ngay sau khi thực thi ứng dụng.


3

Các trình mô phỏng được đặt dưới:

~/Library/Developer/CoreSimulator/

Ở đây, chúng được liệt kê dưới dạng thư mục có tên UUID. Sử dụng sắp xếp theo 'Ngày sửa đổi' để tìm cái mới nhất. Bên trong điều hướng đến:

/data/Containers/Data/Application/

Tại đây bạn sẽ nhận được danh sách tất cả các ứng dụng trên thiết bị đó. Bạn có thể sắp xếp lại điều này để tải ứng dụng mới nhất.

LƯU Ý: Xcode thay đổi tên thư mục mỗi khi bạn chạy ứng dụng, vì vậy đừng dựa vào việc tạo bí danh / phím tắt trên máy tính để bàn.

Cách dễ nhất là sử dụng ứng dụng tại đây , ứng dụng này thực hiện mọi thứ tự động.


2

Thư mục trình mô phỏng đã được chuyển với Xcode 6 beta sang ...

 ~/Library/Developer/CoreSimulator

Duyệt thư mục đến thư mục Documents của ứng dụng khó hơn một chút, ví dụ:

~/Library/Developer/CoreSimulator/Devices/4D2D127A-7103-41B2-872B-2DB891B978A2/data/Containers/Data/Application/0323215C-2B91-47F7-BE81-EB24B4DA7339/Documents/MyApp.sqlite

2

Cách tốt nhất để tìm đường dẫn là thực hiện thông qua mã.

Sử dụng Swift, chỉ cần dán mã bên dưới vào bên trong ứng dụng chức năng trong AppDelegate.swift của bạn

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsPath = paths.first as String
println(documentsPath)

Đối với mã Obj-C, hãy xem câu trả lời từ @Ankur


2

Đối với Swift 3.x

if let documentsPath = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask).first?.path {
        print("Documents Directory: " + documentsPath)
    }

1

iOS 11

if let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory,
                                                           .userDomainMask,
                                                           true).first {
    debugPrint("documentsPath = \(documentsPath)")
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.