2012-07-24 51 views
11

Tôi đã đăng - How to use OpenFileDialog to select a folder?, tôi không thể tìm thấy câu trả lời đúng. Vì vậy, tôi đã thay đổi câu hỏi của mình.C# - Làm thế nào để tùy chỉnh OpenFileDialog để chọn nhiều thư mục và tập tin?

Tôi muốn tùy chỉnh OpenFileDialog để chọn nhiều thư mục và tệp. Tôi đã cố gắng tìm một giải pháp và có thể thấy một số bài viết về nó.

Từ internet, tôi đã tìm thấy dự án sau - https://github.com/scottwis/OpenFileOrFolderDialog.

Tuy nhiên, trong khi sử dụng, tôi đã gặp phải một sự cố. Nó sử dụng hàm GetOpenFileName và cấu trúc OPENFILENAME từ MFC. Và OPENFILENAME có thành viên có tên "templateID". Đó là số nhận dạng cho mẫu hộp thoại. Và dự án mẫu có "res1.rc" tệp và cũng có hộp thoại được tô màu trong đó.

Nhưng tôi không biết Làm cách nào để đính kèm tệp này vào dự án C# của tôi?

Hoặc có giải pháp hoàn hảo nào khác về - "Cách tùy chỉnh OpenFileDialog để chọn nhiều thư mục và tệp?"?

Trả lời

11

Nếu bạn sử dụng thuộc tính FileNames thay cho thuộc tính FileName, bạn nhận được một mảng chuỗi của mỗi tệp được chọn, bạn chọn nhiều tệp bằng cách sử dụng phím shift. Cũng giống như vậy:

private void button1_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog x = new OpenFileDialog(); 
    x.Multiselect = true; 
    x.ShowDialog(); 
    string[] result = x.FileNames; 

    foreach (string y in result) 
     MessageBox.Show(y, "Selected Item", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 

Đối với tập tin và thư mục mà bạn cần phải sử dụng CommonOpenFileDialog kèm với WinAPI, các lớp học đặc biệt là here.

+1

Bạn cần đặt thuộc tính 'Multiselect' của' OpenFileDialog' thành 'true' để làm việc đó :) –

+2

Bạn có quên" nhiều ** thư mục ** và tệp "không? Tôi cũng muốn chọn các thư mục. – Yun

+0

Tôi nghĩ rằng bạn cần phải sử dụng CommonOpenFileDialog thay vào đó, nhưng nó sẽ làm việc theo cùng một cách, tôi sẽ cập nhật câu trả lời của tôi ngay lập tức – JMK

2

Hãy thử điều này:

openFileDialog.Multiselect = true; 
+0

Bạn đã quên "nhiều ** thư mục ** và tệp"? Tôi cũng muốn chọn các thư mục. – Yun

+0

Nên hoạt động cho cả thư mục và tệp. –

1

Bạn có thể không được tích hợp sẵn trong kiểm soát Net như thế. Chắc chắn OpenFileDialog không thể hoạt động như cả Trình duyệt tệp cũng như Thư mục. Bạn có hai lựa chọn cho công cụ của bên thứ ba như công cụ bạn tìm thấy thứ hai tạo quyền kiểm soát của riêng bạn. Đáng ngạc nhiên là bạn có thể không tìm thấy việc tạo ra một phiên bản rất đơn giản của sự kiểm soát của chính bạn rất khó khăn.

+0

Cảm ơn bạn. Bạn có bất kỳ công cụ của bên thứ ba được đề xuất nào không? – Yun

+0

Tôi chưa bao giờ sử dụng một ... không bao giờ cần thiết để ... nhưng nhìn vào các liên kết này .. http://www.ssware.com/fldrview.htm và http: //www.codeproject.com/Các bài viết/44914/Chọn-tệp-hoặc-thư mục-từ-cùng-hộp thoại –

Các vấn đề liên quan