我有一個c#代碼,我需要在點擊按鈕後在txt文件中記錄信息。該文件被創建,但寫方法拋出一個異常錯誤:該進程無法訪問文件'D: test.txt'
Write方法:
public static void writelogfile(string text)
{
StreamWriter sw = logfile.AppendText();
sw.WriteLine(text);
sw.Close();
}
文件創建方法:
string filename = "loging-" + DateTime.Now.ToString("yyyyMMdd-HHmmss") + ".txt";
logfile = new FileInfo("D:Log\\" + filename); //for QA
logfile.Create();
的方法,用於記錄信息的實際行:
writelogfile("userid: " + id);
該進程無法訪問文件'D:test.txt',因爲它正在被其他進程使用的 。 System.IO.__ Error.WinIOError(Int32 errorCode,String maybeFullPath)System.IO.FileStream.Init(String path,FileMode mode,FileAccess access,Int32 rights,Boolean useRights,FileShare share,Int32 bufferSize,FileOptions選項, SECURITY_ATTRIBUTES secAttrs,字符串MSGPATH,布爾bFromProxy)在 System.IO.FileStream..ctor(字符串路徑,的FileMode模式,FileAccess的 訪問,文件共享份額,緩衝區大小的Int32,FileOptions選項,字符串 MSGPATH,布爾bFromProxy)在系統.IO.FileStream..ctor(字符串 路徑,FileMode模式,FileAccess訪問,FileShare共享,Int32 bufferSize,FileOptions選項) System.IO.StreamWriter..ctor(String path,Boolean append,Encoding 編碼的Int32 BUFFERSIZE)在System.IO.StreamWriter..ctor(字符串 路徑,布爾附加)在System.IO.FileInfo.AppendText()在 Blocked_listupdate.VisualWebPart1.VisualWebPart1UserControl.writelogfile(字符串 文本)在 Blocked_listupdate .VisualWebPart1.VisualWebPart1UserControl。 <> c_ DisplayClass1.b _0() at Microsoft.SharePoint.SPSecurity。 <> C_ DisplayClass4.b _2()在處 Microsoft.SharePoint程序 Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback 安全碼,對象PARAM) Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated 安全碼)。 SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated 的SecureCode)在 Blocked_listupdate.VisualWebPart1.VisualWebPart1UserControl.btnupdate_Click(對象 發件人,EventArgs的)
我在家裏忘了我的晶球。請分享您的代碼.. –
也許是因爲它正在被另一個進程使用。另一個應用程序或者你有一個打開的文件句柄D:\ test.txt。 – Matten
Matten的評論使得聽起來像tulajaram創建文件的方式不會放開文件。通過代碼,我們可以指出你出錯的地方。 – krillgar