2012-06-19 26 views
5

Tôi hiện đang làm việc trên một dự án mà tôi đang thêm tệp docx vào thư mục Bố cục trong Visual Studio và sau đó sử dụng các tệp ducment đó để tạo Loại nội dung.Tải tệp từ thư mục _layouts trong SharePoint

Vấn đề là tôi không thể lấy các tệp tài liệu theo lập trình. Sử dụng trình duyệt web tôi có thể lấy các tệp nhưng không sử dụng web.GetFolder() ;. Mã đang chạy trong Trình nhận tính năng khi một tính năng được kích hoạt.

SPSite site = properties.Feature.Parent as SPSite; 
SPWeb web = site.RootWeb; 

SPFolder docTempFolder = web.GetFolder("_LAYOUTS/Projekt/DocumentTemplates"); 

Mã này cung cấp cho tôi bộ sưu tập có 0 tệp.

Tôi đang làm gì sai?

Cảm ơn bạn đã trợ giúp.

+0

có thể trùng lặp của [Nhận đường dẫn thư mục đến 12 Hive theo lập trình] (http://stackoverflow.com/questions/943933/get-directory-path-to-12-hive -programmatically) – Goyuix

Trả lời

7

SPFolder là để nhận các đối tượng từ thư viện/danh sách tài liệu SharePoint. Bạn không thể truy cập các tệp trong hệ thống tệp (số 14 của bạn) bằng cách cố gắng truyền chúng dưới dạng SPFolder. Ngoài ra, bạn không thể sử dụng SPWeb.GetFolder vì các tệp không ở đâu gần web của bạn. Họ đang ở trên đĩa cứng của bạn.

Bạn có thể nhận 14 tổ ong bằng cách sử dụng GetGenericSetupPath, vì vậy một cái gì đó như thế này sẽ làm việc:

var path = SPUtility.GetGenericSetupPath(@"TEMPLATE\LAYOUTS\Projekt\DocumentTemplates"); 

con đường này bây giờ bạn có thể truy cập với các độc giả suối thường xuyên, System.IO.File, vv


EDIT: Đối với SharePoint 2013 trở lên phương pháp đã đề cập đã lỗi thời như trong các phiên bản SharePoint mới hơn tham chiếu đến thư mục _layouts luôn chứa SharePoint phiên bản trong đường dẫn (ví dụ: /_layouts/15 cho SharePoint 2013 /_layouts/14 cho SharePoint 2010.

Phương pháp mới là SPUtility.GetVersionedGenericSetupPath. Phương thức không tồn tại trong SharePoint 2010.

+1

Tôi biết điều này là cũ nhưng mọi người sẽ tìm thấy nó trên Google. Điều này đã lỗi thời trong SP2013. http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.getgenericsetuppath.aspx – trgraglia

+0

Bạn nói đúng. Tôi đã thêm chỉnh sửa vào bài đăng. –

+0

Rắn. Cập nhật tuyệt vời! – trgraglia

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