2013-06-01 36 views
0

情景寫模式打開: 的文件正在從互聯網.An應用下載試圖讀取相同的文件,當它被下載。如何可以在應用程序檢查此文件是否已在寫入模式下打開。如何在Android上檢查文件是否被其他應用程序

平臺:Android的

+0

問題是不是當作家完成,但要注意的是,文件被寫入到 –

回答

1

您可以檢查該文件正在通過輪詢寫入修改日期。一旦文件沒有被修改一段時間,你可能會認爲它已經下載。否則,沒有可靠的方法來做到這一點,而不讀取文件,看看它是否完整。

+1

謝謝您的回答,有可能是在那裏作家修改較長的時間間隔後的文件的情況下(讓我們說一些記錄系統作者),所以在這種情況下,這個檢查可能會失敗。 –

+0

對於記錄器,可能無法判斷ti何時完成。 –

+0

可能適用於這種情況file.canWrite()是一個選項。 –

0

我假設問題是,您正在閱讀文件,並且您沒有獲得end of file令牌,並且您想知道此文件何時會完成,即何時會獲得end of file令牌。

現在有2種選擇:

  1. 你知道這是網上下載文件的過程中,在這種情況下有可能與過程同步。這似乎不太可能,因爲你可能不知道該文件。它可能是任何使用情況下的隨機文件。

  2. 你只能做錯誤處理,如果它不是第一個選項。大概等待eof令牌一段時間t和定時器到期後,再次讀取文件的大小,如果它增加了,這意味着讀一些更多的字節,並再次啓動定時器的相同的過程。缺點是它可能需要無限的時間,所以你必須有一些機制來突破它之間的任何時間。

這個問題似乎沒有明確的答案。這完全取決於你的用例。 只有選項似乎在運行時檢查修改日期(如@Peter提到的)或讀取文件大小,然後根據您的用例處理它。

相關問題