This commit is contained in:
parent
84732957e3
commit
c175393f85
@ -916,9 +916,33 @@ namespace Volian.Controls.Library
|
||||
string rofstPath = rdi.FolderPath + @"\ro.fst";
|
||||
if (!File.Exists(rofstPath)) return false;
|
||||
FileInfo fiRofst = new FileInfo(rofstPath);
|
||||
if (roFstInfo.DTS == fiRofst.LastWriteTime) return false;
|
||||
if (roFstInfo.DTS > fiRofst.LastWriteTime) return false;
|
||||
return true;
|
||||
|
||||
// if the database Ro.Fst is newer or if the files have identical DTS,
|
||||
// assume that they are the same file.
|
||||
if (roFstInfo.DTS >= fiRofst.LastWriteTime) return false;
|
||||
|
||||
// next see if the data is the same size, i.e. byte count of record and byte count
|
||||
// of file. If different sizes, the date/time stamp check will hold.
|
||||
if (fiRofst.Length != roFstInfo.ROLookup.Length) return fiRofst.LastWriteTime > roFstInfo.DTS;
|
||||
|
||||
// if we can't tell by the DTS or size, compare the contents. Get all of the rodb's
|
||||
// rofsts of the size of the file & compare bytes. If
|
||||
ROFstInfoList fstList = ROFstInfoList.GetBySize(rdi.RODbID, (int)fiRofst.Length);
|
||||
if (fstList.Count > 0)
|
||||
{
|
||||
FileStream fsIn = new FileStream(rofstPath, FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
// Create an instance of StreamReader that can read characters from the FileStream.
|
||||
BinaryReader r = new BinaryReader(fsIn);
|
||||
byte[] ab = r.ReadBytes((int)fsIn.Length);
|
||||
fsIn.Close();
|
||||
foreach (ROFstInfo irofst in fstList)
|
||||
{
|
||||
// compare contents by comparing each byte.
|
||||
for (int i = 0; i < fiRofst.Length; i++)
|
||||
if (ab[i] != irofst.ROLookup[i]) return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public void SetUpdRoValBtn(bool en)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user