2013-08-05 23 views
7

Tôi đang làm việc trên một dự án RCP Eclipse và cần cho phép người dùng chọn một số tệp. Để thuận tiện, dựa trên một số điều kiện, thư mục ban đầu của hộp thoại chọn tệp phải được đặt trước khi mở nó.Đặt thư mục ban đầu trong SWT FileDialog

Khi tôi bị ràng buộc với Eclipse RCP/SWT, tôi đang làm việc với org.eclipse.swt.widgets.FileDialog.
Tài liệu về số này FileDialog chỉ ra để sử dụng phương pháp setFilterPath(String string) cần làm chính xác những gì tôi cần (xem documentation).

FileDialog dialog = new FileDialog(shell, SWT.OPEN); 
    dialog.setFilterExtensions(new String [] {"*.html"}); 
    dialog.setFilterPath("c:\\temp"); 
    String result = dialog.open(); 

Thật không may nó không hoạt động, ít nhất không phải "mọi lúc".

Tôi hiện chưa cài đặt để kiểm tra, nhưng tôi khá chắc chắn rằng tính năng này sẽ hoạt động hoàn toàn trên máy tính Windows 200/XP/Vista. Tôi đang làm việc với một máy tính Windows 7 và tôi nghĩ rằng tôi đang bị hành vi được mô tả ở đây cho lpstrInitialDir.

Ít nhất, đây chính xác là hành vi tôi đang gặp phải: Đường dẫn là lần đầu tiên tôi mở hộp thoại, nhưng lần thứ hai, đường dẫn ban đầu được đặt thành đường được chọn cuối cùng. Điều này có vẻ thuận tiện trong hầu hết các trường hợp, nhưng nó không phải là của tôi.

Điều này có đúng không? Nếu có, tôi có cơ hội thay đổi hành vi theo nhu cầu của mình không?

Cảm ơn mọi câu trả lời trợ giúp!

+0

Tôi đã nêu ra lỗi đó .. https://bugs.eclipse.org/bugs/show_bug.cgi?id=426849 –

Trả lời

0

Bạn đang sử dụng cùng một đối tượng FileDialog khi bạn mở lại?

Tôi đã chạy một vài kiểm tra nhanh và nhận thấy rằng, nếu bạn đặt lại filterPath, hộp thoại sẽ mở ở vị trí chính xác.

Nếu tôi mở lại cùng một đối tượng, nó sẽ bắt đầu ở vị trí đã chọn trước đó.

+0

Tôi đã gặp phải vấn đề tương tự, cụ thể là setFilterPath() không phải lúc nào cũng hoạt động. Điều gần nhất mà tôi có thể suy ra là setFilterPath() là nhất quán, khi cung cấp một thư mục, chẳng hạn như "C: \\", tuy nhiên nếu bạn chỉ định một máy chủ mạng, chẳng hạn như "\\\\ jmr-stamp01", thì tất cả cược đang tắt. Đôi khi bạn sẽ thấy đường dẫn mạng và đôi khi bạn sẽ không thấy. Tôi nghi ngờ rằng lớp SWT FileDialog có một lỗi trong đó. –

+0

Có, tôi đang sử dụng đối tượng FileDialog mới nhưng nó không hoạt động .. –

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