# Removing folders

**URL:** <https://discourse.slicer.org/t/removing-folders/30195>\
**Category:** Development\
**Tags:** python\
**Created:** [June 23, 2023, 2:01pm UTC](https://discourse.slicer.org/t/removing-folders/30195 "2023-06-23T14:01:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Patrick\_Li](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/patrick_li/32/66178_2.png) [@Patrick\_Li](https://discourse.slicer.org/u/Patrick_Li)\
**Post date:** [June 23, 2023, 2:01pm UTC](https://discourse.slicer.org/t/removing-folders/30195/1 "2023-06-23T14:01:27Z")

</div>

I’ve been able to remove nodes with the RemoveNode() function, but I can’t find any corresponding function for non-Node objects, such as folders. Is there a function to remove folders, or a similar method?

---

<div class="post-metadata">

**Author:** ![rbumm](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/rbumm/32/9404_2.png) [@rbumm](https://discourse.slicer.org/u/rbumm)\
**Post date:** [June 25, 2023, 10:04am UTC](https://discourse.slicer.org/t/removing-folders/30195/2 "2023-06-25T10:04:12Z")

</div>

It turns out that if you convert folders to “subject”

![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/e/c/ecbf7e43c7b2021e722cc2a389ce3d5c9321fa8d.png)

you can delete them with

`````auto
# Get the MRML scene
scene = slicer.mrmlScene

# Get the folder node you want to remove. Replace 'FolderName' with your folder's name.
folderNode = scene.GetFirstNodeByName('MyFolder')

# If the node exists, then remove it
if folderNode:
     scene.RemoveNode(folderNode)
else: 
     print("Folder 'MyFolder' not found")

````
`````

---

<div class="post-metadata">

**Author:** ![rbumm](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/rbumm/32/9404_2.png) [@rbumm](https://discourse.slicer.org/u/rbumm)\
**Post date:** [June 25, 2023, 10:37am UTC](https://discourse.slicer.org/t/removing-folders/30195/3 "2023-06-25T10:37:01Z")

</div>

The preferred way seems to be:

```auto
shNode = slicer.mrmlScene.GetSubjectHierarchyNode()
exportFolderItemId = shNode.CreateFolderItem(shNode.GetSceneItemID(), "MyNewFolder")

# do something with the folder
# later ...

shNode.RemoveItem(exportFolderItemId)

```
