-
-
Notifications
You must be signed in to change notification settings - Fork 731
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CleanDirectory does not clean readonly files. #1317
Comments
Not sure if it should be modified to do this... Surely it would be better if you want this behavior to iterate over the files/dirs first and remove the readonly attribute? |
This is the defaullt behavior in .NET when deleteing files. One option could be to add an overload that has an force option so it's explicit intent to change this default behavior. Meanwhile resetting attributes can be done thru FilePath filePath = MakeAbsolute(File("./readonly.txt"));
System.IO.File.SetAttributes(filePath.FullPath, FileAttributes.Normal); or FilePath filePath = MakeAbsolute(File("./readonly.txt"));
var fileInfo = new System.IO.FileInfo(filePath.FullPath);
//thru IsReadOnly property
fileInfo.IsReadOnly = false;
// alternatively thru Attributes property
fileInfo.Attributes = FileAttributes.Normal; |
@nrjohnstone I agree, however @devlead I'm not sure I'm keen on the overload idea as you'd probably end up overloading all the current methods, but I agree it's a bad idea to change the default behavior Maybe a new alias something like
would be more flexible ? |
+1 I'm trying to make my builds idempotent and when cloning a repo from git, often the .git directory contains read only files which causes DeleteDirectory or CleanDirectory to fail. What about adding a Force boolean argument (defaulted to false) to Clean/Delete Directory? I'd be happy to contribute. |
@devlead @WrathZA @nrjohnstone I have some time in the next week or so to work on this if we can decide the approach and still feel it's worth doing... |
this would be indeed most useful to clean up a git folder. I would expect it as default behavior. |
Hi, this is the same for files in TFS. I'm trying to copy around some files to include in my build artifact but my clean is failing due to readonly files stopping a delete / clean. |
I ran into this in the context of cleaning up a git folder as well. Instead of adding overloads to |
One of the main reasons we're using a build script is to pull down git repositories. This feature would be useful, I'm currently using the System.IO features to remove the git cloned folder. |
I'd like to take a crack at this if nobody else has started it. |
How are you getting on with this @definesfineout ? I'm happy to take over if you won't be able to complete it. |
I have now opened PR #4077 that fully addresses this issue - please review if you get a chance. I will work to address any matters up until this change is successfully merged. I note this issue was opened Oct 25, 2016 which is a long time between drinks, but equally I hope it was worth the wait 😊 |
Awesome. Thanks @FrankRay78 ! |
🎉 This issue has been resolved in version v3.1.0 🎉 The release is available on: Your GitReleaseManager bot 📦🚀 |
What You Are Seeing?
Trying to run
CleanDirectory()
on a folder that has had somereadonly
files copied into it usingCopyFiles()
The issue is thatCleanDirectory()
fails with access denied on the read only files.What is Expected?
CleanDirectory()
deletes the files even if they arereadonly
.What version of Cake are you using?
0.16.2
Are you running on a 32 or 64 bit system?
x64
What environment are you running on? Windows? Linux? Mac?
Windows
Are you running on a CI Server? If so, which one?
N\A
How Did You Get This To Happen? (Steps to Reproduce)
Add some
readonly
xsd files to./Documents/Schemas/
and run the following cake file twice...Output Log
First Run
Second Run
The text was updated successfully, but these errors were encountered: