Tôi muốn người dùng chọn bất kỳ tệp nào có trong iPhone/iPhone của mình để nó được sử dụng làm tệp đính kèm e-mail. Với mục đích này, tôi muốn hiển thị danh sách tất cả các tệp và thư mục có trong iPhone. Nhưng làm thế nào tôi sẽ nhận được danh sách các tập tin đó? Có cách nào để lấy danh sách đó không?Làm thế nào để liệt kê tất cả các thư mục và thư mục con/tệp trong iPhone SDK?
Trả lời
Hãy xem xét rằng ứng dụng của bạn chạy trong hộp cát và sẽ không thể lấy bất kỳ thư mục/tệp nào bên ngoài hộp cát đó.
ObjectiveC
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *fileList = [manager contentsOfDirectoryAtPath:documentsDirectory error:nil];
for (NSString *s in fileList){
NSLog(@"%@", s);
}
Swift 4
guard let documentsDirectory = try? FileManager().url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) else { return }
guard let fileEnumerator = FileManager.default.enumerator(at: documentsDirectory, includingPropertiesForKeys: nil, options: FileManager.DirectoryEnumerationOptions()) else { return }
while let file = fileEnumerator.nextObject() {
print(file)
}
Đây là chậm nhất cách tiếp cận (?):
NSFileManager * fileManager = [NSFileManager new];
NSArray * subpaths = [fileManager subpathsAtPath:path];
nhưng điều đó nên ít nhất điểm bạn đến một nhiều chuyên impl ementation cho nhu cầu của bạn.
Tóm tắt mức độ thấp hơn một chút cho phép bạn liệt kê theo yêu cầu bao gồm NSDirectoryEnumerator
và CFURLEnumerator
. Tùy thuộc vào độ sâu của thư mục, chúng có khả năng tiết kiệm nhiều tương tác không cần thiết với hệ thống tệp, so với -[NSFileManager subpathsAtPath:]
.
Bạn có thể đề cập đến giá trị của biến "đường dẫn" trong dòng thứ hai không. –
@Muhammed Vâng, bạn không có quyền truy cập vào bất kỳ tệp nào ở bất kỳ đâu trên hệ thống tệp vì nó là hộp cát.Bạn * làm * có quyền truy cập vào dữ liệu cục bộ của ứng dụng của bạn - các tài liệu 'simpleDob 'của simpleBob thể hiện cách bạn sẽ nhận được đường dẫn đó. – justin
Cảm ơn bạn đã trả lời một sự nhầm lẫn nhỏ. nếu các tập tin của tôi có trong thư mục ảnh của iPhone. Tôi có truy cập được không? tôi có nghĩa là để nói rằng tôi có thể liệt kê tất cả các tập tin có trong thư mục ảnh. –
Bạn có thể sử dụng NSDirectoryEnumerator
qua NSFileManager.enumeratorAtPath
Từ các tài liệu:
NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"];
NSFileManager *localFileManager=[[NSFileManager alloc] init];
NSDirectoryEnumerator *dirEnum =
[localFileManager enumeratorAtPath:docsDir];
NSString *file;
while ((file = [dirEnum nextObject])) {
if ([[file pathExtension] isEqualToString: @"doc"]) {
// process the document
[self scanDocument: [docsDir stringByAppendingPathComponent:file]];
}
}
Tôi là một tác giả của FileExplorer kiểm soát mà là một trình duyệt tập tin cho iOS và đáp ứng hầu hết các yêu cầu của bạn. Lưu ý rằng nó cho phép bạn duyệt các tập tin và thư mục được đặt bên trong sandbox của bạn.
Dưới đây là một số tính năng kiểm soát của tôi:
- Khả năng để lựa chọn các tập tin hoặc/và thư mục nếu có một nhu cầu cho điều đó
- possiblity để loại bỏ các tập tin hoặc/và thư mục nếu có một cần cho rằng
- Chức năng tìm kiếm được tích hợp
- Xem các tệp Âm thanh, Video, Hình ảnh và PDF.
- Khả năng thêm hỗ trợ cho bất kỳ loại tệp nào.
Bạn có thể tìm thấy điều khiển của mình here.
nhanh chóng 3
let fileManager:FileManager = FileManager()
let files = fileManager.enumerator(atPath: NSHomeDirectory())
while let file = files?.nextObject() {
print("Files::",file)
}
- 1. Liệt kê tất cả các thư mục trong thư mục
- 2. làm thế nào để liệt kê tất cả các thư mục con trong một thư mục
- 3. Liệt kê tất cả các tệp và thư mục trong thư mục + thư mục con
- 4. Liệt kê các tệp trong thư mục và tất cả thư mục con
- 5. aws sdk php để liệt kê các thư mục s3
- 6. Liệt kê tất cả các nhóm thư mục hoạt động
- 7. Lệnh để liệt kê tất cả các tệp trong thư mục cũng như thư mục con trong cửa sổ
- 8. Liệt kê tất cả các chỉ mục
- 9. Làm thế nào để liệt kê tất cả các tệp trong một thư mục và thư mục con của nó trong hadoop hdfs
- 10. Liệt kê tất cả thư mục con và tệp trong thư mục bằng cách sử dụng php
- 11. Cách liệt kê các thư mục trống trong linux
- 12. Cách liệt kê tất cả các tệp và thư mục nằm trên thẻ sd
- 13. Cách đệ quy liệt kê tất cả các tệp và thư mục
- 14. Liệt kê tất cả các máy tính trong thư mục hoạt động
- 15. Liệt kê tất cả thư mục và tệp của Dropbox bằng cách sử dụng API Dropbox
- 16. cách liệt kê tất cả các file trong thư mục hiện
- 17. Liệt kê tất cả các tài nguyên được nhúng trong một thư mục
- 18. Liệt kê tất cả các tệp trong một thư mục - đường dẫn đầy đủ của tệp
- 19. Tìm tất cả các tệp trong một thư mục bằng cách liệt kê
- 20. tìm thư mục trong một thư mục mà không liệt kê thư mục gốc
- 21. Làm cách nào để liệt kê tất cả các tệp tga trong một thư mục (không đệ quy) trong Python?
- 22. Làm thế nào để liệt kê tất cả các mục của tệp tar trong java?
- 23. Cách liệt kê các tệp trong thư mục hiện tại?
- 24. Làm cách nào để tìm tất cả thư mục con của một thư mục?
- 25. Liệt kê tất cả các tệp từ thư mục FTP trực tuyến đến một listview C#
- 26. Liệt kê tất cả các thư mục của Google Drive thông qua SDK Google Drive của iOS
- 27. Làm thế nào để nén các thư mục trong iPhone SDK?
- 28. liệt kê các thư mục con trong một thư mục - Matlab (chỉ các thư mục con, không phải tệp)
- 29. liệt kê tất cả nội dung của một thư mục trong tfs
- 30. Làm thế nào để đuôi tất cả các tệp nhật ký bên trong một thư mục và thư mục con?
Nhưng ví dụ tôi có tập tin .pdf hiện đâu đó trong ổ cứng của iPhone và tôi muốn xác định vị trí tập tin đó hoặc muốn lấy đường dẫn của file đó hơn ... ?? ? –
Bạn không thể lưu trữ tất cả các tệp trong hộp cát ứng dụng. Bạn có thể nói với hệ thống rằng ứng dụng của bạn hỗ trợ PDF và cho phép các ứng dụng khác gửi tệp PDF ứng dụng của bạn. Không có cách nào khác để làm điều đó. – rckoenes