2012-06-26 135 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'没有关系。它是你的循环的替代 –