2013-02-26 25 views
13

Tôi đang tạo một chương trình trong C# với rất nhiều hoạt động IO. Một số thao tác đó đang sao chép các thư mục.Tại sao không có Directory.Copy trong C#

Tôi đã thực sự choáng váng khi tôi phát hiện ra rằng bạn không có một cái gì đó như Directory.copy (SourceDir, DestinationDir) trong C#.

Tôi googled một chút xung quanh và tại msdn họ cung cấp cho một mẫu mã để sao chép thư mục. (http://msdn.microsoft.com/en-us/library/bb762914.aspx). Nhưng khi bạn tìm kiếm thêm một chút, có một phương pháp Directory.Copy trong không gian tên Microsoft.VisualBasic.FileIO. (http://msdn.microsoft.com/en-us/library/ms127957.aspx)

Tôi có thể yêu cầu không gian tên này và sử dụng phương pháp này, nhưng phải có lý do tại sao Microsoft không hỗ trợ điều này trong C# và tại sao họ không đề cập đến nó trên msdn.

Hy vọng ai đó có thể cho tôi biết lý do.

Tôi có thể viết extensionmethod để giải quyết vấn đề này & Tôi có thể giải quyết nó khá dễ dàng, nhưng câu hỏi của tôi là Tại sao? Tại sao không có phương pháp như vậy trong C#, tôi chỉ muốn biết :-)

+0

Nhóm VB đã thêm một số Utils cho những thứ mà bạn có thể dễ dàng phát triển bản thân bằng cách sử dụng các lớp có sẵn. – Aphelion

+3

** Tại sao ** sẽ là không thể cho bất cứ ai, nhưng các nhà phát triển của khuôn khổ để trả lời. Chúng ta chỉ có thể suy đoán, ít nhiều về mặt giáo dục. =) –

Trả lời

4

Vì thật dễ dàng để thực hiện một số foreach trên DirectoryInfo.GetFiles(), đồng thời cung cấp cho bạn cơ hội lọc danh sách các tệp đang được sao chép hoặc một số hoạt động khác ngoài sao chép.

Nếu nó thực sự làm phiền bạn, hãy viết một phương pháp mở rộng cho lớp học DirectoryInfo hoặc bộ sưu tập FileInfo[].

+1

Không thuyết phục :) – Anri

+0

Vậy tại sao nó có sẵn trong không gian tên Microsoft.VisualBasic.FileIO cho VB.NET và nó không có sẵn trong một không gian tên cho C#? –

+3

@Bram: Xml Literals cũng có sẵn trong không gian tên 'Microsoft.VisualBasic', cũng như một vài thứ khác. Nhóm C# thích ngắn gọn hơn; nếu một đối tượng địa lý không cung cấp giá trị gia tăng đáng kể, chúng không bao gồm nó. –

2

Đoán của tôi là VB được định hướng nhiều hơn trên người mới bắt đầu và những thứ như Microsoft.VisualBasic.FileIO được dự định để thu hút họ vào thế giới .NET.

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