如何从给定路径中删除所有文件和文件夹?
我尝试过这个,但我无法选择目录.
<Target Name="CleanSource" Condition="$(path)!=''">
<Message Text="path=$(path)"/>
<ItemGroup>
<fileToDelete Include="$(path)\**\*.*" />
<directoryToDelete Include="$(path)\**\" /><!these doest not select any directory at all-->
</ItemGroup>
<Message Text="file to delete:@(fileToDelete)"/>
<Message Text="directory to delete:@(directoryToDelete)"/>
<Delete Files="@(fileToDelete)" />
<Message Text="file effectively deleted:@(DeletedFiles)"/>
<RemoveDir Directories="@(directoryToDelete)" />
<Message Text="Directory effectively deleted:@(RemovedDirectories)"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
Bri*_*ker 69
该RemoveDir任务删除指定目录及其所有文件和子目录.您不必先删除文件和子目录.只需将目录名称传递给RemoveDir即可.
<ItemGroup>
<DirsToClean Include="work" />
</ItemGroup>
<Target Name="CleanWork">
<RemoveDir Directories="@(DirsToClean)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
Tay*_*ird 16
虽然有方法只使用MSBuild来构建它,但我强烈推荐使用MSBuild扩展包.
http://msbuildextensionpack.codeplex.com/ [已被移动]
GitHub:MSBuildExtensionPack
使用该包,您将获得一个RemoveContent任务,该任务可以完全满足您的需求.安装完成后,您只需执行以下操作:
<MSBuild.ExtensionPack.FileSystem.Folder
TaskAction="RemoveContent" Path="$(PathtoEmpty)"/>
Run Code Online (Sandbox Code Playgroud)
Pit*_*ded -22
最后我确实使用了 powershell ,速度更快:
<exec>
<executable>powershell.exe</executable>
<buildArgs><![CDATA[-command "& {if( [System.IO.Directory]::Exists($pwd) ){dir $pwd | ri -recurse
-force}}"]]></buildArgs>
</exec>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34506 次 |
| 最近记录: |