Nếu khách hàng NET của tôi sử dụng System.IO.File.Copy để sao chép một tập tin từ \ server1 \ share1 \ file1.txt để \ sever1 \ share2 \ file2.txt, không dữ liệu của tập tin được đọc xuống máy khách và sau đó ghi lại máy chủ? Nếu có, có cách nào một máy khách .NET có thể sao chép một tệp trên máy chủ đến một vị trí khác trên cùng một máy chủ mà không cần cắt bớt tệp không? Liệu nó có tạo sự khác biệt nếu chia sẻ đích giống như chia sẻ nguồn không?File.Copy() từ một mạng chia sẻ với một phần khác trên cùng một máy có sao chép tập tin qua mạng không?
Trả lời
Có. Tôi có thể nói điều này từ kinh nghiệm cá nhân với việc sao chép 10 GB tệp Zip giữa các máy. Máy khách "" trên một bờ biển khác của Mỹ so với hai máy khác. Giữa hai máy trực tiếp từ một trong số họ mất một khoảng thời gian hợp lý. Cố gắng khởi tạo bản sao từ máy trên bờ biển khác mất ~ 10 giờ: (
Đó là một câu hỏi tuyệt vời - tôi dường như không thể tìm thấy câu trả lời dứt khoát nào, vì vậy có lẽ điều tốt nhất là để cháy lên Wireshark để kiểm tra.
Nội dung tệp phải đi qua máy thực hiện thao tác Sao chép. Cách duy nhất để chạy chương trình trên máy đích) thực hiện chuyển mà không có máy khách ở giữa, chẳng hạn như FXP sử dụng FTP để chuyển máy chủ sang máy chủ
Tuy nhiên, việc mở đường dẫn này cũng có thể mở lỗ hổng bảo mật và tôi nghi ngờ nhiều quản trị viên sẽ miễn cưỡng cho phép điều này
Nếu có thể thực hiện di chuyển thay vì sao chép, điều đó sẽ xảy ra ngay lập tức.Nếu không, bạn cần đặt dịch vụ trên máy mục tiêu để bạn có thể gọi nó từ xa
Thật sao? Bạn có thể chứng minh điều đó? – flipdoubt
Tôi không chắc chắn ý của bạn là "chứng minh" ở đây. Tôi vừa mới trình diễn nó trong Windows Vista. Hãy thử một lần. Sử dụng Explorer trên máy A để truy cập một phần trên máy B và 'Cắt' một thư mục con lớn và 'Dán' nó ở một nơi khác trong cùng một phần. Nó sẽ di chuyển ngay lập tức. –
Như được giải thích bởi @cdonner, điều này sẽ chỉ hoạt động nếu hai thư mục trên cùng một chia sẻ. Nếu có hai cổ phần khác nhau, di chuyển sẽ được thực hiện dưới dạng bản sao + xóa bao gồm cả chuyến khứ hồi cho khách hàng. – Anlo
Đây là câu hỏi cũ, nhưng tôi không nghĩ có câu trả lời đúng ở đây.
Thực tế có 2 câu hỏi (3 câu hỏi, nhưng câu hỏi thứ 3 là dư thừa). Câu hỏi đầu tiên là nếu một tiến trình .Net chạy trên máy khách (3) sao chép một tệp từ một mạng chia sẻ sang một mạng chia sẻ khác, nó có tạo sự khác biệt nếu nguồn và mục tiêu chia sẻ trên cùng một máy tính (hay không?). khác với khách hàng) so với 2 máy tính khác nhau? Câu trả lời rõ ràng là không. Không có cơ chế, không có đường hầm bí mật giữa các chia sẻ mạng. Dữ liệu phải di chuyển đến khách hàng và sau đó chia sẻ với người khác. Nó không tạo sự khác biệt nếu thao tác là bản sao hoặc di chuyển, và nó thực sự không tạo sự khác biệt nếu các cổ phiếu trên cùng một máy tính với máy khách (và bạn thực sự truy cập các thư mục dưới dạng chia sẻ mạng với đường dẫn UNC chứ không phải dưới dạng thư mục cục bộ).
Câu hỏi thứ hai là, làm cách nào để tránh chuyến đi khứ hồi này? Dưới đây là một số đề xuất:
- Nếu nguồn và đích có cùng chia sẻ, di chuyển tệp không yêu cầu chuyến đi khứ hồi, vì hệ điều hành chỉ cập nhật tham chiếu trong hệ thống tệp.
- Quá trình chạy trên máy với nguồn hoặc mục tiêu chia sẻ có thể thực hiện bản sao mà không cần phải trả lời cho khách hàng. Quá trình này có thể là một bản sao từ xa, vv nếu một trong hai máy chủ chạy Linux. Trên một máy chủ Windows, bạn có thể cài đặt một dịch vụ WCF sao chép tệp khi một yêu cầu đến từ một máy khách.
- 1. Sao chép tập tin qua mạng qua chia sẻ tập tin, xác thực người dùng
- 2. Sao chép tập tin trên một ổ đĩa mạng chia sẻ
- 3. File.Copy() để tập tin máy chủ với mạng Credential
- 4. Sao chép tập tin qua kết nối mạng gián đoạn
- 5. Sqlite qua mạng chia sẻ
- 6. Đọc một tập tin từ một mạng chia sẻ thời gian tạo của nó cho lần ghi cuối cùng
- 7. kho svn trên chia sẻ mạng Windows
- 8. Hành vi khóa khác với mạng chia sẻ
- 9. Truy cập Django devserver từ một máy khác cùng mạng
- 10. Đồng thời trong một repo GIT trên một thư mục chia sẻ mạng
- 11. Đọc một tập tin trên một đường dẫn mạng
- 12. Sao chép tệp qua mạng (yêu cầu xác thực)
- 13. Ngoại lệ bảo mật .NET trên mạng chia sẻ
- 14. Bản sao SVN hoạt động trên mạng Chia sẻ
- 15. Git có thể chia sẻ qua mạng không?
- 16. MEF tải các plugin từ một thư mục chia sẻ trên mạng
- 17. Làm thế nào để sử dụng phương pháp File.Copy C# để sao chép tệp qua mạng LAN?
- 18. Cảnh báo bảo mật khi mở tập tin từ mạng chia sẻ
- 19. Sao chép Bảng tính Google + Chia sẻ với cùng một người dùng trong tập lệnh
- 20. Chạy chương trình C# .NET từ mạng chia sẻ
- 21. Tìm hiểu ai đang khóa tệp trên mạng chia sẻ
- 22. Làm thế nào để chia sẻ jboss qua mạng
- 23. Sao chép tệp vào thư viện chia sẻ trong R
- 24. Ứng dụng Chia sẻ/SMB mạng
- 25. chia sẻ cùng một dll thông qua các ứng dụng web khác nhau mà không cần sao chép
- 26. Liệt kê các Chia sẻ Mạng với C#
- 27. Truy nhập mạng chia sẻ từ bên trong VBScript, ví dụ FileSystemObject
- 28. Cách truy cập ổ đĩa mạng chia sẻ trong node.js
- 29. iterating trên một mạng lưới với CasperJS
- 30. danh sách sao chép các tập tin từ một thư mục khác trong R
Tại sao bạn không bỏ phiếu cho câu hỏi của mình? Có lẽ bạn có và nó đã được bỏ phiếu xuống một lần nữa, nhưng có vẻ như nhiều người quên bỏ phiếu cho những câu hỏi hay. – Ash
Cảm ơn bạn đã +1 và cảm ơn mẹo về công cụ.Tôi sẽ cập nhật câu hỏi của mình với đầu ra của công cụ này làm bằng chứng về câu trả lời "có" được chấp nhận, ngay sau khi tôi nhận được câu trả lời. – flipdoubt