diff --git a/Source/Project64-core/Project64-core.vcxproj.filters b/Source/Project64-core/Project64-core.vcxproj.filters index 2ef1471f1..981ba7998 100644 --- a/Source/Project64-core/Project64-core.vcxproj.filters +++ b/Source/Project64-core/Project64-core.vcxproj.filters @@ -312,6 +312,9 @@ Source Files\N64 System\Mips + + Source Files\Rom List + diff --git a/Source/Project64/UserInterface/RomBrowserClass.cpp b/Source/Project64/UserInterface/RomBrowserClass.cpp index 6e4c58434..feb1cb310 100644 --- a/Source/Project64/UserInterface/RomBrowserClass.cpp +++ b/Source/Project64/UserInterface/RomBrowserClass.cpp @@ -1098,17 +1098,22 @@ bool CRomBrowser::RomDirNeedsRefresh(void) //Get Old MD5 of file names stdstr FileName = g_Settings->LoadStringVal(RomList_RomListCache); - HANDLE hFile = CreateFile(FileName.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, NULL); - if (hFile == INVALID_HANDLE_VALUE) + if (!CPath(FileName).Exists()) { //if file does not exist then refresh the data return true; } - DWORD dwRead; + CFile hFile(FileName.c_str(), CFileBase::modeRead); + if (!hFile.IsOpen()) + { + //Could not validate, assume it is fine + return false; + } + unsigned char CurrentFileMD5[16]; - ReadFile(hFile, &CurrentFileMD5, sizeof(CurrentFileMD5), &dwRead, NULL); - CloseHandle(hFile); + hFile.Read(&CurrentFileMD5, sizeof(CurrentFileMD5)); + hFile.Close(); //Get Current MD5 of file names strlist FileNames; @@ -1176,6 +1181,11 @@ void CRomBrowser::WatchRomDirChanged(CRomBrowser * _this) void CRomBrowser::WatchThreadStart(void) { + if (m_WatchThread != NULL) + { + // thread already running + return; + } WriteTrace(TraceUserInterface, TraceDebug, "1"); WatchThreadStop(); WriteTrace(TraceUserInterface, TraceDebug, "2");