[英]C# How to Rename file after File.Copy without using File.Move
[英]How to force File.Move / File.Copy to use a specific Network Interface Card (NIC) C#?
我有一台裝有多個網卡的機器。 我的過程非常耗費網絡,因為它會通過網絡將許多文件復制到另一台計算機上的共享位置(例如“ \\ ...”)。
我想為該過程設置一個專用的NIC,但是File.Copy
\\ File.Move
的C#IO API掩蓋了所使用的NIC。
如何在C#中甚至通過在C#項目下使用一些C ++調整來完成?
File.Move()
和File.Copy()
實際上沒有網絡知識。 它完全依靠操作系統來處理所有事情。 因此,如果將文件移動/復制到恰好是網絡安裝的路徑...那就這樣吧。 但是Move()
和Copy()
並不在乎。
話雖如此,您可以通過可綁定到NIC的Sockets
設置協議。
假設你有一個NicA
說的是“123.1.2.3”和NicB
這是“156.2.3.4”。 然后,您可以創建一個套接字,並將Bind()
到與您關心的NIC匹配的IPAddress
。
這是一個完整的過程,但是您可以將未使用的私有范圍中的輔助IP地址綁定到兩台計算機上,並使用File.Copy
進行File.Copy
。
例如,假設您的正常LAN尋址是NIC1上的192.168.0.1
192.168.0.254
。
在“源”計算機上,將10.0.0.1
綁定到NIC2。 在“目標”計算機上,將10.0.0.2
綁定到您要使用的NIC,如果您願意,可以將其添加為現有NIC上的輔助地址。
然后可以將File.Copy
到\\\\10.0.0.2\\share
。 源計算機上的OS應該確定NIC2是通向10.0.0.2
的“最低成本途徑”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.