2010-09-27 171 views
3

我有一個來自特定目錄的tif文件,我有一個函數來讀取所有tif文件並將其轉換爲文本,轉換後我將其移動一旦成功轉換成名爲「Completed」的文件夾,並在轉換失敗後將其移動到Failed文件夾中。問題是當我使用System.IO.File的Move方法時,它引發了一個錯誤,說「進程無法訪問該文件,因爲它正在被另一個進程使用」。問題是什麼,我關閉了文件,我把它丟棄了,但仍然出現錯誤?有誰能幫我解決這個問題嗎?謝謝。該進程無法訪問該文件,因爲它正在被另一個進程使用

+6

我不知道你的代碼是什麼樣子。 – 2010-09-27 23:09:26

+0

您是否已將此圖片加載到圖片中?如果是的話,你是否處理了這個? – 2010-09-27 23:12:00

+0

實際上我關閉了它,並且配置了它也 – user335160 2010-09-28 09:55:15

回答

1

確保在處理過程中關閉文件以及與其關聯的任何內容。

(因爲您選擇不向我們展示代碼,我們真的不知道什麼得到了加工過程中產生的。)

認準的事像MemoryStreams,存儲器映射文件,文件支持圖片,文件句柄存儲在一個容器或IEnumerable等。

你有正確的想法,確保你明確.Close()已知的引用,和Dispose的對象,但東西仍然保存該文件。

+0

在完成這個過程之後我關閉了這個文件,然後把它移動到特定的目錄 – user335160 2010-09-28 09:55:52

0

確保您的轉換過程在移動之前完全完成。有時它看起來像一個過程完成時,它實際上沒有。

0

請確保關閉StreamReader,StreamWriter和任何其他正在運行該文件的進程,然後再對其執行不同的操作。 例如如果您正在使用StreamReader進行閱讀並需要寫入他關閉StreamReader的文件,然後啓動StreamWriter。

或者你可以使用Filestream,我聽說在.NET Framework 4.0中他們引入了異步文件操作。

相關問題