.NET- ja suljetut asiakirjat
OK, voiko kukaan selittää, miksi voinM SK1t tarkastaa nimenomaisesti, voinko lukkoa asiakirjan ennen kuin luen sen . FileSystemWatcher odottamaan, että asiakirjat laaditaan luetteloon ennen kuin se käynnistetään. - on hyvä, mutta ei ole mitään helppoa tarkistaa, onko asiakirja readable before starting to read. FileStream ja kiinnittää virhettä, joka se heittelee, kun asiakirja on suljettu toisella prosessilla...kuten niin... mutta tämä ei todellakaan tunnu asianmukaiselta 'Ihmettelen ajatusta poikkeusten käyttämisestä M SK4joiden käyttö on myös todella hidastaMSC5 tällaisen tehtävän osaltaMST6miksi eiMstK7t FileStreamM stk8Kyllätkö lukea lukkien tarkastelua ennen kuin asiakirjan avaamistaMStk9
private static int m_ReadAttempts = 0;
private string ReadFileFromDisk(string filePath)
{
try
{
if(!File.Exists(filePath))
{
MessageBox.Show("Sorry, but the file specified " + Environment.NewLine + filePath + Environment.NewLine + "Cannot be found");
return string.Empty;
}
using(FileStream fs = new FileStream(filePath,FileMode.Open,FileAccess.Read,FileShare.Read))
{
using(StreamReader sr = new StreamReader(fs))
{
string tmpStr = sr.ReadToEnd();
sr.Close();
m_ReadAttempts =0;
return tmpStr;
}
}
}
catch(IOException ex)
{
if(m_ReadAttempts < 10)
{
Thread.Sleep(500);
m_ReadAttempts++;
return ReadFileFromDisk(filePath);
}
else
{
throw ex;
}
}
}