2012-02-08 52 views
0

我正在嘗試太多時間,但無法實現目標。文件已打開,但在寫入模式下打開。如何以只讀模式打開文本文件意味着我無法執行寫入?

代碼 - 在txtpath.text,我傳遞文本的路徑:

System.IO.FileInfo fileObj= new System.IO.FileInfo(txtPath.Text); 

fileObj.Attributes = System.IO.FileAttributes.ReadOnly; 

System.Diagnostics.Process.Start(fileObj.FullName); 
+2

爲什麼你使用'Process.Start'在ASP.NET應用程序中打開一個文件? – Yahia 2012-02-08 07:44:21

+0

我與Yahia在這裏......這件事情似乎很錯誤。根本不是「讀取」文件,而是告訴窗口「執行」文件,然後它會嘗試在默認編輯器中打開它。但是這在ASP.NET應用程序中沒有任何意義。 – CodingWithSpike 2012-02-09 00:36:50

回答

2

使用File.OpenRead方法

string sFilename = "myfile.txt"; 
FileStream SR = File.OpenRead(sFilename); 
1

打開文件爲只讀它的內容:

// Open the stream and read it back. 
    using (FileStream fs = File.OpenRead(path)) 
    { 
     byte[] b = new byte[1024]; 
     UTF8Encoding temp = new UTF8Encoding(true); 

     while (fs.Read(b,0,b.Length) > 0) 
     { 
      Console.WriteLine(temp.GetString(b)); 
     } 
    } 

更多關於File.OpenReadhttp://msdn.microsoft.com/en-us/library/system.io.file.openread.aspx

設置一個文件的屬性ReadOnly並執行:

File.SetAttributes(txtPath.Text, File.GetAttributes(txtPath.Text) | FileAttributes.ReadOnly); 
System.Diagnostics.Process.Start(txtPath.Text); 
相關問題