the above code works fine for small files.but if the file size is very large then the code - int lBytes = Convert.ToInt32(oFileStream.Length);gives error as it cannot convert a big length to int.Also if I use a long datatype as - long lBytes ;But in Read method it requires int datatype only.How to solve this problem? And I have to do this using Filestream only.

Ok, you need to us Async IO and read or write chunks at a time.This gives you two advatiges. One being you can updata a status bar for the use and secound you can shovel the data onto sumthing and see if there is enuf space left.I don’t have any example I can send you unfortinuntly.Look for Async IO example with recursave call’s into BeginRead.