Open xbee opened 7 years ago
多高,我不敢说,请问如何评价效率太低。
我调用的是filepath中的wolk函数,是递归实现的深度优先的算法。
349 // walk recursively descends path, calling w.
350 func walk(path string, info os.FileInfo, walkFn WalkFunc) error {
351 err := walkFn(path, info, nil)
352 if err != nil {
353 if info.IsDir() && err == SkipDir {
354 return nil
355 }
356 return err
357 }
358
359 if !info.IsDir() {
360 return nil
361 }
362
363 names, err := readDirNames(path)
364 if err != nil {
365 return walkFn(path, info, err)
366 }
367
368 for _, name := range names {
369 filename := Join(path, name)
370 fileInfo, err := lstat(filename)
371 if err != nil {
372 if err := walkFn(filename, fileInfo, err); err != nil && err != SkipDir {
373 return err
374 }
375 } else {
376 err = walk(filename, fileInfo, walkFn)
377 if err != nil {
378 if !fileInfo.IsDir() || err != SkipDir {
379 return err
380 }
381 }
382 }
383 }
384 return nil
385 }
目录遍历效率过低