| Author: Syed Shakeer Hussain 20 Jan 2009 | Member Level: Diamond | Rating:  Points: 6 |
Hi
This program just demonstrate the use of FileStream & StreamReader. The program take 1 parameter from the user i.e. the file to read.
using System; using System.IO; class FileRead { string filereadbuf; // buffer to store the content of file public void ReadFile(string FileName, int FileSize) { char[] buf = new char[FileSize]; // lets define an array of type char field (i.e. variable) buf // for more help please see .net sdk StreamReader sr = new StreamReader(new FileStream(FileName, FileMode.Open, FileAccess.Read)); int retval = sr.ReadBlock(buf, 0, FileSize); // no. of bytes read Console.Write ("Total Bytes Read = " + retval + "\n"); filereadbuf = new string(buf); // store it in our field Console.WriteLine (filereadbuf); // lets print on screen sr.Close(); } } class TestFileRead { public static void Main(string[] args) { String[] cmdline = Environment.GetCommandLineArgs(); // Get the command line parameter Console.WriteLine("File Reader Using Stream Reader & File Stream \n"); if (cmdline.Length < 2) // If no parameter is given will show user the usage { Console.WriteLine("Usage: " + cmdline[0] + " <input file> "); return; } // Using Directory Class & using a Method GetFiles we get file list from the current directory // return value is array of files please see .net sdk documentation for more help. File[] fe = (new Directory(".")).GetFiles(cmdline[1]); if (fe.Length == 0) { Console.WriteLine(cmdline[1] + ": file not found"); // if not found display a message to user return; } FileRead fr = new FileRead(); try { fr.ReadFile(cmdline[1], (int)fe[0].Length); // sends 2 parameter filename & length } catch(IOException e) { Console.WriteLine("I/O error occured" + e); return ; } } // Close brace of Main } // close brace of TestFileRead
Thanks & Regards! Syed Shakeer Hussain
|
| Author: Gitolekha Ray 20 Jan 2009 | Member Level: Gold | Rating:  Points: 4 |
Sorry Syed, you code will not work in this case,I had tried using it already. The problem will occur as I have the uri of the filename stored in the document library, and StreamReader does not accept uri's, it gives an error "URI formats are not supported".
However, I have found out the solution myself. SPSite ospSite = SPContext.Current.Site; SPWeb ospWeb = ospSite.OpenWeb();
/*docPath returns the url of the file as sharepoint url/document library/filename*/ string docPath = Request.QueryString["Path"]; SPFile tempFile = ospWeb.GetFile(docPath); StreamReader reader = new StreamReader(tempFile.OpenBinaryStream()); /*txtUpload is the textbox control where we insert the value of the text file*/ txtUploadText.Text = reader.ReadToEnd(); reader.Close();
|