亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我會收到“該進程無法訪問該文件,因為它正被另一個進程使用”的消息。

為什么我會收到“該進程無法訪問該文件,因為它正被另一個進程使用”的消息。

C#
倚天杖 2023-04-29 15:31:16
我正在嘗試處理一組文件,我有給定數量的 txt 文件,我目前正在加入 1 個 txt 文件以應用過濾器。從多個文件創建 1 個文件效果很好。但我有 2 個問題和 1 個錯誤,我似乎無法解決。1 - 當我嘗試讀取新創建的文件時出現錯誤,因此我可以應用過濾器。“該進程無法訪問該文件,因為它正被另一個進程使用?!? - 我是以正確或更有效的方式接近這個嗎?我的意思是可以在創建串聯文件之前應用讀取和過濾嗎?我的意思是我仍然需要創建一個新文件,但最好能夠在創建之前應用所有內容,以便文件已經清理并準備好在應用程序外部使用。這是有問題的當前代碼和我在發布文件時的其他嘗試的 1 條注釋行private DataTable processFileData(string fname, string locs2 = "0", string effDate = "0", string items = "0")    {        DataTable dt = new DataTable();        string fullPath = fname;        try        {            using (StreamReader sr = new StreamReader(File.OpenRead(fullPath)))            //using (StreamReader sr = new StreamReader(File.Open(fullPath,FileMode.Open,FileAccess.Read, FileShare.Read)))            {                while (!sr.EndOfStream)                {                    string line = sr.ReadLine();                    if (!String.IsNullOrWhiteSpace(line))                    {                        string[] headers = line.ToUpper().Split('|');                        while (dt.Columns.Count < headers.Length)                        {                            dt.Columns.Add();                        }                        string[] rows = line.ToUpper().Split('|');                        DataRow dr = dt.NewRow();                        for (int i = 0; i < rows.Count(); i++)                        {                            dr[i] = rows[i];                        }                        dt.Rows.Add(dr);                    }                }                //sr.Close();                sr.Dispose();            }            string cls = String.Format("Column6 NOT LIKE ('{0}')", String.Join("','", returnClass()));            dt.DefaultView.RowFilter = cls;            return dt;        }        catch (IOException ex)        {            Console.WriteLine(ex.Message);            return dt;        }我試圖完成的是讀取最?。? 或 3 個 txt 文件和多達 13 個 txt 文件)并應用一些過濾。但我收到此錯誤:“該進程無法訪問該文件,因為它正被另一個進程使用?!?
查看完整描述

1 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

您正在使用以下行處理流閱讀器

sr.Dispose();

使用“使用”語句將在流脫離上下文后進行處理。所以刪除 Dispose 行(如果下面不清楚)


查看完整回答
反對 回復 2023-04-29
  • 1 回答
  • 0 關注
  • 192 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號