In any case, you shouldn't have code like playwav("some_sound.wav"); though -- more like:
Sound* some_sound = loadwav("some_sound.wav"); //filename processing paid once, pointer obtained
playwav(some_sound); // no details of filesystem involved per frame
Load sound once; obtain handle to sound; play via handle either playwav(handle) or soundObj->play().
At BEST I might have a playprecached("some_sound"); which would do the name hashing and lookup from the resource container there and then but still no disk I/O at that point.