Просто сделай это. Это удалит все файлы внутри каталога, а также из подкаталогов. Без вреда для любой папки / каталога. Хорошо работает на Ubuntu без каких-либо ошибок.
import os
mypath = "my_folder" #Enter your path here
for root, dirs, files in os.walk(mypath):
for file in files:
os.remove(os.path.join(root, file))
WinForms (и лежащий в основе User32) вообще не поддерживает прозрачность. WinForms, однако, может имитировать прозрачность, используя стиль управления, который вы предоставляете - SupportsTransparentBackColor, но в этом случае все, что делает этот «прозрачный» элемент управления, позволяет рисовать родительский фон.
ButtonBase использует некоторые стили окон, которые препятствуют работе этого механизма. Я вижу два решения:
Я не уверен, что ButtonBase поддерживает прозрачность ... вы это проверили?
Я написал несколько прозрачных элементов управления, но я всегда унаследовал от Control или UserControl.
Если вы хотите заблокировать элемент управления, рисующий фон, вы должны переопределить OnPaintBackground вместо OnPaint и не вызывать базовый класс.
Заполнение прямоугольника кистями.Transparent - это забавно - вы рисуете невидимым раскрасьте то, что там есть. Или, другими словами: ничего не делает!
In winforms there are some tricks to allow a control having its background correctly painted when using transparency. You can add this code to the OnPaint or OnPaintBackground to get the controls you have in the background being painted:
if (this.Parent != null)
{
GraphicsContainer cstate = pevent.Graphics.BeginContainer();
pevent.Graphics.TranslateTransform(-this.Left, -this.Top);
Rectangle clip = pevent.ClipRectangle;
clip.Offset(this.Left, this.Top);
PaintEventArgs pe = new PaintEventArgs(pevent.Graphics, clip);
//paint the container's bg
InvokePaintBackground(this.Parent, pe);
//paints the container fg
InvokePaint(this.Parent, pe);
//restores graphics to its original state
pevent.Graphics.EndContainer(cstate);
}
else
base.OnPaintBackground(pevent); // or base.OnPaint(pevent);...