2012-06-26 65 views
0

基本上我需要複製一個文件(FAT或NTFS),而無需使用微軟的System.IO.File.Copy庫。我正在使用COSMOS(C#開源託管操作系統),因爲這不是Windows,所以File.Copy不起作用。如何跨平臺複製C#文件?

任何幫助,將不勝感激。

+1

我的猜測是,有COSMOS例程這種IO。 –

回答

2

您是否有System.IO命名空間的其他部分?最值得注意的是,各種流?

如果不是,那麼我看不出你應該怎麼能夠複製任何東西。

但是,假設你可以打開文件進行讀,寫,你可以平凡實現自己的複製方法:

private void CopyFile(string source, string dest) 
{ 
    using (var input = new FileStream(source, FileMode.Open, FileAccess.Read)) 
    using (var output = new FileStream(dest, FileMode.OpenOrCreate, FileAccess.Write)) 
    { 
     byte[] data = new byte[1024]; 
     int bytesRead = 0; 
     do 
     { 
      bytesRead = input.Read(data, 0, data.Length); 
      if (bytesRead > 0) 
       output.Write(data, 0, data.Length); 
     } while (bytesRead > 0); 
    } 
} 

(上面代碼中未測試)

+0

[Stream.CopyTo](http://msdn.microsoft.com/tr-tr/library/system.io.stream.copyto.aspx) –

+0

這是一個新的,因爲.NET 4我認爲,機會是COSMOS不'沒有。但如果它在那裏,那麼通過一切手段,OP應該使用它而不是重新實現它 –

+0

它與'COSMOS'沒有關係。它是你的循環的替代 –