-
Notifications
You must be signed in to change notification settings - Fork 57
Labels
bugSomething isn't workingSomething isn't working
Description
Component Version
9.5.10
Operating System Version
All
CPU Instruction Set Architecture
All
Error Description
In BinaryHandler.cs (within the Dirty method):
If we replace the original code block:
if (File.Exists(_oldfilePath))
{
File.SetAttributes(_oldfilePath, FileAttributes.Normal);
File.Delete(_oldfilePath);
}
if (File.Exists(_newfilePath))
{
File.SetAttributes(_newfilePath, FileAttributes.Normal);
File.Copy(_newfilePath, _oldfilePath, true);
}
with:
File.SetAttributes(_oldfilePath, FileAttributes.Normal);
File.Delete(_oldfilePath);
File.Move(_newfilePath, _oldfilePath);
The code works normally sometimes, but occasionally throws a "file is occupied" exception — even though the file has actually been deleted. This issue is particularly prominent when the main program shuts down abnormally.
Although File.Exists(_oldfile) returns false (meaning the file does not exist), the system still reports "file is occupied" due to multi-threading reasons.
When the Move operation fails, I replaced it with File.Copy(xx, xx, true) for testing, and this solution works.
Hardware Driver Update
No response
Error Sample Code Repository URL
No response
Copilot
Metadata
Metadata
Labels
bugSomething isn't workingSomething isn't working