- Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
- Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
Reply to: .net detecting file in use
Collapse
You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:
- You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
- You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
- If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.
Logging in...
Previously on ".net detecting file in use"
Collapse
-
Originally posted by eek View Post+1 fullautomatix's stackoverflow link is the right approach if you simply want to check if a file .
If you have full control the unix lock file approach provides you with more information which may be useful if processes hit a snag.
However I did find this which might be useful, need to think about it because it is reliant on a specific result as a magic number so is vulnerable to change and different platform issues:-
catch (IOException e)
{
return (Marshal.GetHRForException(e) & 0xFFFF) == 32;
}
The only other idea I could think of was to create a machine wide synchroinzation object and lock through that. In effect this means a named mutex I think. Certainly a bit of a faff.
A final thought was to open the file differently (e.g. read write allow share) and then call "lock" - the documentation states that the only reason for the IOException this can throw is because it is locked, but then I can't assume anything about how the other process might have the file opened so that doesn't work either.
Cheers folks.
Leave a comment:
-
Originally posted by fullyautomatix View PostNo you were offering a completely idiotic solution and Nick has rightly criticised it.
If you have full control the unix lock file approach provides you with more information which may be useful if processes hit a snag.
Leave a comment:
-
Originally posted by russellWell I was just giving an example, not going to do his job for him.
Leave a comment:
-
c# - Is there a way to check if a file is in use? - Stack Overflow
I think some kind of retry attempts logic mechanism is the only way to do it.
Leave a comment:
-
Originally posted by russell View PostI assume you don't want to write code that looks at the message because it is a string and isn't all type safe etc? You could do exception.Message.Contains("in use") or something similar?
Leave a comment:
-
Originally posted by eek View PostUse a separate lock file. If lock file exists don't try to open the file. If lock file doesn't exist open file and then create lock file. When file is closed remove the lock file.
The next stop would be to check if the lock file has existed for a significant amount of time. If it has kill the other process and restart that program.
Granted its a rather unix way of managing files but if it works steal it.
Leave a comment:
-
Originally posted by ASB View PostI have 2 processes writing some info to the same file. It's a small file the contents of which get replaced.
I'm trying to figure out a reliable way of detecting the file is in use so I Can abort or retry or whatever.
I create a FileStream using Mode=Create, Access=Write, Share=None
The problem is that this will throw an IOException if the file is in use. But I can't tell that this is the problem. It could be any other FileException. The only way I could tell is to look at the exception message.
Any suggestions? Surely there must be a simple way. Haven't turned anything by googling so maybe not.Last edited by russell; 15 March 2012, 14:36.
Leave a comment:
-
Originally posted by ASB View PostI have 2 processes writing some info to the same file. It's a small file the contents of which get replaced.
I'm trying to figure out a reliable way of detecting the file is in use so I Can abort or retry or whatever.
I create a FileStream using Mode=Create, Access=Write, Share=None
The problem is that this will throw an IOException if the file is in use. But I can't tell that this is the problem. It could be any other FileException. The only way I could tell is to look at the exception message.
Any suggestions? Surely there must be a simple way. Haven't turned anything by googling so maybe not.
The next stop would be to check if the lock file has existed for a significant amount of time. If it has kill the other process and restart that program.
Granted its a rather unix way of managing files but if it works steal it.
Leave a comment:
-
.net detecting file in use
I have 2 processes writing some info to the same file. It's a small file the contents of which get replaced.
I'm trying to figure out a reliable way of detecting the file is in use so I Can abort or retry or whatever.
I create a FileStream using Mode=Create, Access=Write, Share=None
The problem is that this will throw an IOException if the file is in use. But I can't tell that this is the problem. It could be any other FileException. The only way I could tell is to look at the exception message.
Any suggestions? Surely there must be a simple way. Haven't turned anything by googling so maybe not.Tags: None
- Home
- News & Features
- First Timers
- IR35 / S660 / BN66
- Employee Benefit Trusts
- Agency Workers Regulations
- MSC Legislation
- Limited Companies
- Dividends
- Umbrella Company
- VAT / Flat Rate VAT
- Job News & Guides
- Money News & Guides
- Guide to Contracts
- Successful Contracting
- Contracting Overseas
- Contractor Calculators
- MVL
- Contractor Expenses
Advertisers
Contractor Services
CUK News
- Streamline Your Retirement with iSIPP: A Solution for Contractor Pensions Sep 1 09:13
- Making the most of pension lump sums: overview for contractors Sep 1 08:36
- Umbrella company tribunal cases are opening up; are your wages subject to unlawful deductions, too? Aug 31 08:38
- Contractors, relabelling 'labour' as 'services' to appear 'fully contracted out' won't dupe IR35 inspectors Aug 31 08:30
- How often does HMRC check tax returns? Aug 30 08:27
- Work-life balance as an IT contractor: 5 top tips from a tech recruiter Aug 30 08:20
- Autumn Statement 2023 tipped to prioritise mental health, in a boost for UK workplaces Aug 29 08:33
- Final reminder for contractors to respond to the umbrella consultation (closing today) Aug 29 08:09
- Top 5 most in demand cyber security contract roles Aug 25 08:38
- Changes to the right to request flexible working are incoming, but how will contractors be affected? Aug 24 08:25
Leave a comment: