@@ -121,20 +121,24 @@ exports.files = function files(dir, type, callback, options) {
121121 }
122122 }
123123
124+ var bufdir = Buffer . from ( dir ) ;
125+
124126 const onDirRead = function ( err , list ) {
125127 if ( err ) return callback ( err ) ;
126128
127129 pending = list . length ;
128130 if ( ! pending ) return done ( ) ;
129131
130132 for ( var file , i = 0 , l = list . length ; i < l ; i ++ ) {
131- file = path . join ( dir , list [ i ] ) ;
133+ var fname = list [ i ] . toString ( ) ;
134+ file = path . join ( dir , fname ) ;
135+ var buffile = Buffer . concat ( [ bufdir , Buffer . from ( path . sep ) , list [ i ] ] ) ;
132136
133137 if ( options . sync ) {
134- var res = fs . statSync ( file ) ;
135- getStatHandler ( file , list [ i ] ) ( null , res )
138+ var res = fs . statSync ( buffile ) ;
139+ getStatHandler ( file , fname ) ( null , res )
136140 } else {
137- fs . stat ( file , getStatHandler ( file , list [ i ] ) ) ;
141+ fs . stat ( buffile , getStatHandler ( file , fname ) ) ;
138142 }
139143 }
140144
@@ -146,18 +150,18 @@ exports.files = function files(dir, type, callback, options) {
146150 if ( stat && stat . mode === 17115 ) return done ( ) ;
147151
148152 if ( options . sync ) {
149- const list = fs . readdirSync ( dir )
153+ const list = fs . readdirSync ( bufdir , { encoding : 'buffer' } )
150154 return onDirRead ( null , list )
151155 } else {
152- fs . readdir ( dir , onDirRead )
156+ fs . readdir ( bufdir , { encoding : 'buffer' } , onDirRead )
153157 }
154158 }
155159
156160 if ( options . sync ) {
157- const stat = fs . statSync ( dir ) ;
161+ const stat = fs . statSync ( bufdir ) ;
158162 return onStat ( null , stat )
159163 } else {
160- fs . stat ( dir , onStat ) ;
164+ fs . stat ( bufdir , onStat ) ;
161165 }
162166} ;
163167
0 commit comments