If I understand correctly, there are point and polygon shapefiles in your path (shp can't have two geometry types). You may query with `st_geometry_type` after having all layers bound together with `bind_rows`.

```r
library(sf)
library(dplyr)
nc = st_read(system.file("gpkg/nc.gpkg", package="sf"), quiet = TRUE)

nc_centr = st_centroid(nc) # just to have a point layer to bind

nc_mixed = rbind(nc, nc_centr) %>% mutate(g_type = st_geometry_type(.))

# check geometry types of the layer
unique(nc_mixed$g_type)
[1] MULTIPOLYGON POINT       

nc_filtered = nc_mixed %>% filter(g_type == "MULTIPOLYGON")

# check again
unique(nc_filtered$g_type)
[1] MULTIPOLYGON

```

then you may use `st_buffer()` for the only polygon layer. You may do the filtering in a single step with `filter(st_geometry_type(.) == "MULTIPOLYGON")` and overwrite unnecessary objects.