Collapsible rearrange-able directory trees?

How can I make a directory tree which will allow me to drag and drop content from one folder to another with drag-multi-box-selection, or to move folders on the tree, into other folders on the tree? Also is it possible to assign a limit to how many items can be selected at once?