<p>Imagine we have a program trying to write to a particular file, but failing.</p>
<p>On the Windows platform, what are the possible things which might be causing the file to be un-writable, and what steps could be suggested to an end user/administrator to fix it.</p>
<hr />
<p>Please include steps which might require administrator permissions (obviously users may not be administrators, but for this question, let's assume they are (or can become) administrators.</p>
<p>Also, I'm not really familiar with how permissions are calculated in windows. - Does the user need write access to each directory up the tree, or anything similar to that?</p>

Some suggestions:
No write permission (get permission through Security tab on file Properties window; you must be the file owner or an Administrator)
File is locked (close any program that may have the file open, then reboot if that doesn't help)
File has the read-only DOS attribute set (unset it from file Properties window, or with
```
attrib -r
```
; you must be the file owner or an Administrator)
Edit 1: Only the second item (file is locked) has a possible solution that all users are likely to be able to do without help.  For the first and third, you'll probably want to provide guidance (and hope the file wasn't made read-only intentionally!).
Edit 2: Technically, the user does need write and execute (chdir) permissions on all directories up to the root.  Windows may skip some of the recursive checks up the tree as a performance optimization, but you should not rely on this because admins can force on these so-called "traverse checks" for certain users.
Edit 3: @RobM: Yes, you should check that there is no obvious reason that the user should not have the permissions she needs but does not have.  I alluded to this in a less direct way in my first edit.  However, in some cases users should have write permission to a file but do not because of filesystem corruption, a misbehaving program, or a mistake on their own part.