自己會做的有兩種,很簡單直接的File.Copy、和有點麻煩的FileStream方式。
首先來看File.Copy的方式,一行就輕鬆愉快地搞定;可是如果檔案很大時,那整個程式就會卡在那邊,畫面看起來就會像當機狀態,所以只適用於小型檔案和在本機端時:
然後是FileStream的方式,雖然撰寫比較麻煩,但由於是另外執行,所以不會影響到程式裡其他部分的執行,是比較好的圓融方式,而實際上的複製速度會比File.Copy慢,適用於大型檔案和非本機端時:
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- public class XXX: MonoBehaviour {
- void Start()
- {
- if(File.Exists("D:/aaa.mp4"))
- {
- File.Copy("D:/aaa.mp4", "D:/bbb.mp4");
- }
- }
- void Update()
- {
- }
- }
其他還有很多方式,這裡只是笨笨的我所摸過後會用的兩種。
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- public class XXX: MonoBehaviour {
- void Start()
- {
- if(File.Exists("D:/aaa.mp4"))
- {
- StartCoroutine(DownloadMovie());
- }
- }
- void Update()
- {
- }
- IEnumerator DownloadMovie()
- {
- FileStream fromFileStream = null;
- FileStream toFileStream = null;
- byte[] buffer = new byte[32768];
- int read;
- fromFileStream = new FileStream("D:/aaa.mp4", FileMode.Open);
- toFileStream = new FileStream("D:/bbb.mp4", FileMode.Create);
- while ((read = fromFileStream.Read(buffer, 0, buffer.Length)) > 0)
- {
- toFileStream.Write(buffer, 0, read);
- yield return new WaitForSeconds(0.01f);
- }
- fromFileStream.Close();
- toFileStream.Close();
- }
- }
沒有留言:
張貼留言