2013-01-13 52 views
1

我想用c#將文件複製到pendrive或硬盤驅動器。當我複製它們時,我可以通過檢查已經複製的時間和多少千字節來檢查傳輸速度。但是在開始複製之前有沒有辦法快速猜測速度?我想知道複製需要多長時間。 有沒有辦法呢?計算文件傳輸速度到pendrive

謝謝。

+0

看看Windows文件複製對話框,他們如何以及他們解決同樣的問題... –

回答

1

但是有沒有辦法在開始複製之前快速猜測速度?

我不這麼認爲。

如果會有一種方法,Windows複製粘貼持續時間(剩餘時間)預測會好得多。

目前我認爲,對於任何複製粘貼操作 Windows找出要複製的所有數據的長度。 然後在複製操作過程中,它會發現複製了多少,剩下多少。基於它,它猜測剩下的時間。 在整個複製粘貼過程中,剩餘的時間會一次又一次地重新計算。

例如,
假設要複製的數據是100 MB。
如果1分鐘後,1 MB被複制,剩餘時間將達到99分鐘。
如果2分鐘後,4 MB被複制,剩餘時間將達到48分鐘。
如果10分鐘後,複製5MB,剩餘時間將達到190分鐘。

注意 - >以上是我的觀察,而不是基於內部算法實現的權威答案。

+0

我明白,謝謝你的回答。 – weiszam

0

距離=率*時間

由速率(每秒Kilobites)乘距離(剩餘kilobites)的鴻溝。你應該能夠在幾秒鐘內得到一個艱難的時間。

+1

速率不僅取決於設備支持的速度,還取決於文件類型。一個700MB的視頻文件將被複製得比一個100MB的HTML文檔文件夾快得多。 – Tilak

+0

有沒有辦法以某種方式衡量?我的意思是說,Windows是否知道視頻文件會被更快地複製? – weiszam

+0

這是文件大小和重要文件的數量(不是文件類型,我只用作插圖)。一個10MB文件會比10000個1kB文件少得多的時間。原因 - >文件格式。在遍歷文件數據時,所有信息都以某種方式存在(鏈接列表/ bock索引等)。當涉及多個文件時,它增加了額外的讀取10000個文件頭和文件的空間存儲方式。 – Tilak