This opcode will search a given directory for files, folder, or files and folders. If you wish to use this opcode at k-rate use the version with the kTriggerFind input parameter.

Added in Cabbage v2.6.6


SFiles[] cabbageFindFiles SLocation [, SType, SExtension]
SFiles[] cabbageFindFiles kTriggerFind, SLocation [, SType, SExtension]


  • SLocation -- the directory you wish to search
  • kTriggerFind -- will trigger a search each time this is 1.
  • SType (optional) -- what you want to search for, "files", "directories", "fileAndDirectories"
  • SExtension (optional) -- a file extension in the form of "*.wav". This can be a ; delimited list, i.e, "*.wav;*.ogg"


  • SFiles[] -- a string array of files found


form caption("Find Files") size(400, 300), guiMode("queue") pluginId("def1")
filebutton bounds(8, 208, 384, 43) channel("browseButton"), corners(5), mode("directory") file("/Users/walshr/sourcecode/cabbage/Examples/Miscellaneous")
listbox bounds(8, 10, 383, 192) channel("fileBrowser"), colour(147, 210, 0), highlightColour("black"), channelType("string")
label bounds(35, 265, 335, 16) channel("label1"), text("Please select a file"), colour("white"), fontColour(3, 147, 210)
-n -d -+rtmidi=NULL -M0 -m0d 
; Initialize the global variables. 
ksmps = 32
nchnls = 2
0dbfs = 1

instr 1
    SDirectory, kTrigger cabbageGetValue "browseButton"
    SFiles[] cabbageFindFiles kTrigger, SDirectory, "files"
    cabbageSet kTrigger, "fileBrowser", sprintfk("populate(\"*\", \"%s\")", SDirectory)    
    SSelectedItem, kFileSelected cabbageGetValue "fileBrowser"
    SSelectedFile strcatk cabbageGetFilename(SSelectedItem), cabbageGetFileExtension(SSelectedItem)
    cabbageSet kFileSelected, "label1", "text", cabbageGetFilename(SSelectedItem)

;causes Csound to run for about 7000 years...
f0 z
;starts instrument 1 and runs it for a week
i1 0 [60*60*24*7]