Hướng dẫn dùng dir tree trong PHP
answer 466 Đối với .NET 4.0 trở lên,
Đối với các phiên bản trước của .NET,
chỉnh sửa: Xin vui lòng đọc các ý kiến. Sự cải thiện mà Paul Farry gợi ý, và vấn đề về trí nhớ / hiệu suất mà Christian.K chỉ ra đều rất quan trọng. 466 hữu ích 5 bình luận chia sẻ answer 52 Còn cái này thì sao:
Tôi tìm thấy nó ở đây (trong các ý kiến): http://msdn.microsoft.com/en-us/l Library / wz42302f.aspx 52 hữu ích 5 bình luận chia sẻ answer 29 Nếu bạn có một danh sách lớn các tiện ích mở rộng để kiểm tra, bạn có thể sử dụng các mục sau. Tôi không muốn tạo ra nhiều câu lệnh OR vì vậy tôi đã sửa đổi những gì lette đã viết.
29 hữu ích 5 bình luận chia sẻ answer 27 cho
Bạn có thể:
Nhưng lợi ích thực sự của việc
Sẽ nhanh hơn một chút nếu bạn không phải biến chúng thành những khối u (tức là Đánh giá hiệu suất dựa trên thử nghiệm LinqPad sau đây (lưu ý: (đăng lại và mở rộng từ 'trùng lặp' vì câu hỏi đó đặc biệt yêu cầu không có LINQ: Nhiều phần mở rộng tệp tìm kiếm Mô hình cho System.IO.Directory.GetFiles ) 27 hữu ích 5 bình luận chia sẻ answer 15 Tôi biết đó là câu hỏi cũ nhưng LINQ: (.NET40 +)
15 hữu ích 1 bình luận chia sẻ answer 11 Một cách khác để sử dụng Linq, nhưng không phải trả lại mọi thứ và lọc trên đó trong bộ nhớ.
Đó thực sự là 2 cuộc gọi 11 hữu ích 2 bình luận chia sẻ answer 9 Ngoài ra còn có một giải pháp gốc mà dường như không có bất kỳ bộ nhớ hoặc hiệu năng nào và khá thanh lịch:
9 hữu ích 2 bình luận chia sẻ answer 7 Không. Hãy thử như sau:
Lấy từ: http://bloss.msdn.com/markda/archive/2006/04/20/580075.aspx 7 hữu ích 0 bình luận chia sẻ answer 6 Để cho
Sau đó
hoặc là
6 hữu ích 1 bình luận chia sẻ answer 5 Tôi không thể sử dụng Mã dưới đây không phân biệt chữ hoa chữ thường (vì vậy
5 hữu ích 0 bình luận chia sẻ answer 4 Hàm sau tìm kiếm trên nhiều mẫu, được phân tách bằng dấu phẩy. Bạn cũng có thể chỉ định loại trừ, ví dụ: "! Web.config" sẽ tìm kiếm tất cả các tệp và loại trừ "web.config". Các mẫu có thể được trộn lẫn.
Sử dụng:
4 hữu ích 0 bình luận chia sẻ answer 4
4 hữu ích 4 bình luận chia sẻ answer 3 Chỉ cần tìm một cách khác để làm điều đó. Vẫn không phải là một thao tác, nhưng ném nó ra để xem người khác nghĩ gì về nó.
3 hữu ích 0 bình luận chia sẻ answer 3 Thế còn
3 hữu ích 0 bình luận chia sẻ answer 2 Tạo các phần mở rộng bạn muốn một chuỗi tức là ".mp3.jpg.wma.wmf" và sau đó kiểm tra xem mỗi tệp có chứa phần mở rộng bạn muốn không. Điều này hoạt động với .net 2.0 vì nó không sử dụng LINQ.
Ưu điểm của phương pháp này là bạn có thể thêm hoặc xóa tiện ích mở rộng mà không cần chỉnh sửa mã tức là để thêm hình ảnh png, chỉ cần viết myExtensions = ". Jpg.mp3.png". 2 hữu ích 1 bình luận chia sẻ answer 2
2 hữu ích 0 bình luận chia sẻ answer 2 Không ... Tôi tin rằng bạn phải thực hiện nhiều cuộc gọi như loại tệp bạn muốn. Tôi sẽ tự tạo một hàm lấy một chuỗi trên các chuỗi với các phần mở rộng tôi cần và sau đó lặp lại trên mảng đó để thực hiện tất cả các cuộc gọi cần thiết. Hàm đó sẽ trả về một danh sách chung các tệp khớp với các tiện ích mở rộng tôi đã gửi. Hy vọng nó giúp. 2 hữu ích 0 bình luận chia sẻ answer 2 trong .NET 2.0 (không có Linq):
Sau đó sử dụng nó:
2 hữu ích 0 bình luận chia sẻ answer 2
2 hữu ích 1 bình luận chia sẻ answer 1 Tôi gặp vấn đề tương tự và không thể tìm ra giải pháp phù hợp nên tôi đã viết một hàm có tên GetFiles:
Chức năng này sẽ Ví dụ gọi hàm như thế này:
EDIT: Để có được một tệp có nhiều tiện ích mở rộng, hãy sử dụng tệp này:
Ví dụ gọi hàm như thế này:
1 hữu ích 0 bình luận chia sẻ answer 1 Tôi tự hỏi tại sao có rất nhiều "giải pháp" được đăng? Nếu hiểu biết về tân binh của tôi về cách GetFiles hoạt động là đúng, chỉ có hai tùy chọn và bất kỳ giải pháp nào ở trên có thể được đưa ra dưới đây:
Theo tôi, Tùy chọn 1) tốt hơn, nhưng sử dụng SearchOption.AllDirectories trên các thư mục như C: \ sẽ sử dụng một lượng lớn bộ nhớ. Điều này chỉ gây ra 1 hoạt động GetFiles trên mỗi thư mục và nhanh chóng (Tùy chọn 1), nhưng chỉ sử dụng một lượng bộ nhớ nhỏ vì các bộ lọc được áp dụng sau mỗi lần đọc của thư mục con -> chi phí bị xóa sau mỗi thư mục con. Xin hãy sửa tôi nếu tôi sai. Tôi như tôi đã nói khá mới về lập trình nhưng muốn hiểu sâu hơn về mọi thứ để cuối cùng trở nên giỏi về việc này :) 1 hữu ích 0 bình luận chia sẻ answer 0 Tôi không biết giải pháp nào tốt hơn, nhưng tôi sử dụng giải pháp này:
0 hữu ích 0 bình luận chia sẻ answer 0 Nếu bạn đang sử dụng VB.NET (hoặc nhập phụ thuộc vào dự án C # của bạn), thực sự tồn tại một phương thức tiện lợi cho phép lọc nhiều tiện ích mở rộng:
Trong VB.NET, điều này có thể được truy cập thông qua không gian tên của tôi:
Thật không may, các phương pháp tiện lợi này không hỗ trợ một biến thể được đánh giá lười biếng như thế 0 hữu ích 0 bình luận chia sẻ answer 0 Sử dụng mẫu tìm kiếm GetFiles để lọc tiện ích mở rộng không an toàn !! Chẳng hạn, bạn có hai tệp Test1.xls và Test2.xlsx và bạn muốn lọc tệp xls bằng mẫu tìm kiếm * .xls, nhưng GetFiles trả về cả Test1.xls và Test2.xlsx Tôi không biết điều này và đã gặp lỗi khi sản xuất môi trường khi một số tập tin tạm thời đột nhiên được xử lý như tập tin bên phải. Mẫu tìm kiếm là * .txt và các tệp tạm thời được đặt tên * .txt20181028_100753898 Vì vậy, mẫu tìm kiếm không thể tin cậy được, bạn cũng phải thêm kiểm tra tên tệp. 0 hữu ích 0 bình luận chia sẻ answer 1 Hoặc bạn chỉ có thể chuyển đổi chuỗi tiện ích mở rộng thành Chuỗi ^
1 hữu ích 1 bình luận chia sẻ answer 2 hy vọng điều này sẽ giúp ai đó:
2 hữu ích 1 bình luận chia sẻ |