Вот фрагмент кода, который я написал, потому что у меня была такая же проблема, как и вы. В принципе, вам нужно закрыть книгу, выйти из приложения, а затем освободить ВСЕ ваши COM-объекты (а не только объект приложения Excel). Наконец, вызовите сборщик мусора для хорошей меры.
/// <summary>
/// Disposes the current <see cref="ExcelGraph" /> object and cleans up any resources.
/// </summary>
public void Dispose()
{
// Cleanup
xWorkbook.Close(false);
xApp.Quit();
// Manual disposal because of COM
while (Marshal.ReleaseComObject(xApp) != 0) { }
while (Marshal.ReleaseComObject(xWorkbook) != 0) { }
while (Marshal.ReleaseComObject(xWorksheets) != 0) { }
while (Marshal.ReleaseComObject(xWorksheet) != 0) { }
while (Marshal.ReleaseComObject(xCharts) != 0) { }
while (Marshal.ReleaseComObject(xMyChart) != 0) { }
while (Marshal.ReleaseComObject(xGraph) != 0) { }
while (Marshal.ReleaseComObject(xSeriesColl) != 0) { }
while (Marshal.ReleaseComObject(xSeries) != 0) { }
xApp = null;
xWorkbook = null;
xWorksheets = null;
xWorksheet = null;
xCharts = null;
xMyChart = null;
xGraph = null;
xSeriesColl = null;
xSeries = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
Подобный BlackTigerX "для", я собирался предложить
for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"
for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d"
http://ebersys.blogspot.com/2008/07/recursively-delete-svn-folders-easy-way.html
В Windows? При использовании tortoiseSVN, можно использовать команду экспорта для экспорта копии проекта без .svn / _ svn папки.
import os
import shutil
curdir = os.path.abspath(os.path.dirname(__file__))
def removedir(dirname, name = ".svn"):
if os.path.isdir(dirname):
for file in os.listdir(dirname):
if os.path.isdir(os.path.join(dirname, file)) and file == name:
thedir = os.path.join(dirname, name)
shutil.rmtree(thedir)
print ".",
else:
removedir(os.path.join(dirname, file))
Я думаю, вы можете попробовать этот скрипт Python, который будет работать под любой ОС, если у вас установлен Python.
Пора изучить PowerShell ; o)
Get-ChildItem -path c:\projet -Include '_svn' -Recurse -force | Remove-Item -force -Recurse
Первая часть рекурсивно находит каждую папку _svn. Сила используется для поиска скрытых папок. Вторая часть используется для удаления этих папок и их содержимого. Командлет удаления поставляется с удобным параметром «whatif», который позволяет предварительно просмотреть, что будет сделано.
PowerShell доступен для Windows XP и Windows Vista. По умолчанию он присутствует в Windows 7 и Windows Server 2008 R2.
Это продукт MS, он бесплатный и потрясающий!