精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java讀取文件夾大小的6種方法及代碼

開發 后端
這篇文章介紹了JAVA讀取文件夾大小的幾種方法實例,有需要的朋友可以參考一下。

Java讀取文件夾大小的6種方法及代碼

(一)單線程遞歸方式

 

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. public class TotalFileSizeSequential { 
  4.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  5.     // 遞歸方式 計算文件的大小 
  6.     private long getTotalSizeOfFilesInDir(final File file) { 
  7.         if (file.isFile()) 
  8.             return file.length(); 
  9.         final File[] children = file.listFiles(); 
  10.         long total = 0
  11.         if (children != null
  12.             for (final File child : children) 
  13.                 total += getTotalSizeOfFilesInDir(child); 
  14.         return total; 
  15.     } 
  16.     public static void main(final String[] args) { 
  17.         final long start = System.nanoTime(); 
  18.         final long total = new TotalFileSizeSequential() 
  19.                 .getTotalSizeOfFilesInDir(new File(fileName)); 
  20.         final long end = System.nanoTime(); 
  21.         System.out.println("Total Size: " + total); 
  22.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  23.     } 

 

(二)使用Executors.newFixedThreadPool和callable 多線程實現

 

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. import java.util.ArrayList; 
  4. import java.util.Collections; 
  5. import java.util.List; 
  6. import java.util.concurrent.Callable; 
  7. import java.util.concurrent.ExecutionException; 
  8. import java.util.concurrent.ExecutorService; 
  9. import java.util.concurrent.Executors; 
  10. import java.util.concurrent.Future; 
  11. import java.util.concurrent.TimeUnit; 
  12. import java.util.concurrent.TimeoutException; 
  13. public class ConcurrentTotalFileSize { 
  14.     public static final String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  15.     class SubDirectoriesAndSize { 
  16.         final public long size; 
  17.         final public List<File> subDirectories; 
  18.         public SubDirectoriesAndSize(final long totalSize, 
  19.                 final List<File> theSubDirs) { 
  20.             size = totalSize; 
  21.             subDirectories = Collections.unmodifiableList(theSubDirs); 
  22.         } 
  23.     } 
  24.     private SubDirectoriesAndSize getTotalAndSubDirs(final File file) { 
  25.         long total = 0
  26.         final List<File> subDirectories = new ArrayList<File>(); 
  27.         if (file.isDirectory()) { 
  28.             final File[] children = file.listFiles(); 
  29.             if (children != null
  30.                 for (final File child : children) { 
  31.                     if (child.isFile()) 
  32.                         total += child.length(); 
  33.                     else 
  34.                         subDirectories.add(child); 
  35.                 } 
  36.         } 
  37.         return new SubDirectoriesAndSize(total, subDirectories); 
  38.     } 
  39.     private long getTotalSizeOfFilesInDir(final File file) 
  40.             throws InterruptedException, ExecutionException, TimeoutException { 
  41.         final ExecutorService service = Executors.newFixedThreadPool(100); 
  42.         try { 
  43.             long total = 0
  44.             final List<File> directories = new ArrayList<File>(); 
  45.             directories.add(file); 
  46.             while (!directories.isEmpty()) { 
  47.                 final List<Future<SubDirectoriesAndSize>> partialResults = new ArrayList<Future<SubDirectoriesAndSize>>(); 
  48.                 for (final File directory : directories) { 
  49.                     partialResults.add(service 
  50.                             .submit(new Callable<SubDirectoriesAndSize>() { 
  51.                                 public SubDirectoriesAndSize call() { 
  52.                                     return getTotalAndSubDirs(directory); 
  53.                                 } 
  54.                             })); 
  55.                 } 
  56.                 directories.clear(); 
  57.                 for (final Future<SubDirectoriesAndSize> partialResultFuture : partialResults) { 
  58.                     final SubDirectoriesAndSize subDirectoriesAndSize = partialResultFuture 
  59.                             .get(100, TimeUnit.SECONDS); 
  60.                     directories.addAll(subDirectoriesAndSize.subDirectories); 
  61.                     total += subDirectoriesAndSize.size; 
  62.                 } 
  63.             } 
  64.             return total; 
  65.         } finally { 
  66.             service.shutdown(); 
  67.         } 
  68.     } 
  69.     public static void main(final String[] args) throws InterruptedException, 
  70.             ExecutionException, TimeoutException { 
  71.         final long start = System.nanoTime(); 
  72.         final long total = new ConcurrentTotalFileSize() 
  73.                 .getTotalSizeOfFilesInDir(new File(fileName)); 
  74.         final long end = System.nanoTime(); 
  75.         System.out.println("Total Size: " + total); 
  76.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  77.     } 

 

(三)使用Executors.newFixedThreadPool和callable 多線程的另外一種實現

  1. package com.taobao.test; 
  2.  
  3. import java.io.File; 
  4. import java.util.ArrayList; 
  5. import java.util.List; 
  6. import java.util.concurrent.Callable; 
  7. import java.util.concurrent.ExecutionException; 
  8. import java.util.concurrent.ExecutorService; 
  9. import java.util.concurrent.Executors; 
  10. import java.util.concurrent.Future; 
  11. import java.util.concurrent.TimeUnit; 
  12. import java.util.concurrent.TimeoutException; 
  13. public class NaivelyConcurrentTotalFileSize { 
  14.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  15.     private long getTotalSizeOfFilesInDir(final ExecutorService service, 
  16.             final File file) throws InterruptedException, ExecutionException, 
  17.             TimeoutException { 
  18.         if (file.isFile()) 
  19.             return file.length(); 
  20.         long total = 0
  21.         final File[] children = file.listFiles(); 
  22.         if (children != null) { 
  23.             final List<Future<Long>> partialTotalFutures = new ArrayList<Future<Long>>(); 
  24.             for (final File child : children) { 
  25.                 partialTotalFutures.add(service.submit(new Callable<Long>() { 
  26.                     public Long call() throws InterruptedException, 
  27.                             ExecutionException, TimeoutException { 
  28.                         return getTotalSizeOfFilesInDir(service, child); 
  29.                     } 
  30.                 })); 
  31.             } 
  32.             for (final Future<Long> partialTotalFuture : partialTotalFutures) 
  33.                 total += partialTotalFuture.get(100, TimeUnit.SECONDS); 
  34.         } 
  35.         return total; 
  36.     } 
  37.     private long getTotalSizeOfFile(final String fileName) 
  38.             throws InterruptedException, ExecutionException, TimeoutException { 
  39.         final ExecutorService service = Executors.newFixedThreadPool(100); 
  40.         try { 
  41.             return getTotalSizeOfFilesInDir(service, new File(fileName)); 
  42.         } finally { 
  43.             service.shutdown(); 
  44.         } 
  45.     } 
  46.     public static void main(final String[] args) throws InterruptedException, 
  47.             ExecutionException, TimeoutException { 
  48.         final long start = System.nanoTime(); 
  49.         final long total = new NaivelyConcurrentTotalFileSize() 
  50.                 .getTotalSizeOfFile(fileName); 
  51.         final long end = System.nanoTime(); 
  52.         System.out.println("Total Size: " + total); 
  53.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  54.     } 

#p#

(四)使用CountDownLatch和AtomicLong實現多線程下的并發控制

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. import java.util.concurrent.CountDownLatch; 
  4. import java.util.concurrent.ExecutorService; 
  5. import java.util.concurrent.Executors; 
  6. import java.util.concurrent.TimeUnit; 
  7. import java.util.concurrent.atomic.AtomicLong; 
  8. public class ConcurrentTotalFileSizeWLatch { 
  9.     private ExecutorService service; 
  10.     final private AtomicLong pendingFileVisits = new AtomicLong(); 
  11.     final private AtomicLong totalSize = new AtomicLong(); 
  12.     final private CountDownLatch latch = new CountDownLatch(1); 
  13.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  14.     private void updateTotalSizeOfFilesInDir(final File file) { 
  15.         long fileSize = 0
  16.         if (file.isFile()) 
  17.             fileSize = file.length(); 
  18.         else { 
  19.             final File[] children = file.listFiles(); 
  20.             if (children != null) { 
  21.                 for (final File child : children) { 
  22.                     if (child.isFile()) 
  23.                         fileSize += child.length(); 
  24.                     else { 
  25.                         pendingFileVisits.incrementAndGet(); 
  26.                         service.execute(new Runnable() { 
  27.                             public void run() { 
  28.                                 updateTotalSizeOfFilesInDir(child); 
  29.                             } 
  30.                         }); 
  31.                     } 
  32.                 } 
  33.             } 
  34.         } 
  35.         totalSize.addAndGet(fileSize); 
  36.         if (pendingFileVisits.decrementAndGet() == 0
  37.             latch.countDown(); 
  38.     } 
  39.     private long getTotalSizeOfFile(final String fileName) 
  40.             throws InterruptedException { 
  41.         service = Executors.newFixedThreadPool(100); 
  42.         pendingFileVisits.incrementAndGet(); 
  43.         try { 
  44.             updateTotalSizeOfFilesInDir(new File(fileName)); 
  45.             latch.await(100, TimeUnit.SECONDS); 
  46.             return totalSize.longValue(); 
  47.         } finally { 
  48.             service.shutdown(); 
  49.         } 
  50.     } 
  51.     public static void main(final String[] args) throws InterruptedException { 
  52.         final long start = System.nanoTime(); 
  53.         final long total = new ConcurrentTotalFileSizeWLatch() 
  54.                 .getTotalSizeOfFile(fileName); 
  55.         final long end = System.nanoTime(); 
  56.         System.out.println("Total Size: " + total); 
  57.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  58.     } 

(五)使用BlockingQueue和AtomicLong的實現

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. import java.util.concurrent.ArrayBlockingQueue; 
  4. import java.util.concurrent.BlockingQueue; 
  5. import java.util.concurrent.ExecutorService; 
  6. import java.util.concurrent.Executors; 
  7. import java.util.concurrent.TimeUnit; 
  8. import java.util.concurrent.atomic.AtomicLong; 
  9. public class ConcurrentTotalFileSizeWQueue { 
  10.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  11.  
  12.     private ExecutorService service; 
  13.     final private BlockingQueue<Long> fileSizes = new ArrayBlockingQueue<Long>( 
  14.             500); 
  15.     final AtomicLong pendingFileVisits = new AtomicLong(); 
  16.     private void startExploreDir(final File file) { 
  17.         pendingFileVisits.incrementAndGet(); 
  18.         service.execute(new Runnable() { 
  19.             public void run() { 
  20.                 exploreDir(file); 
  21.             } 
  22.         }); 
  23.     } 
  24.     private void exploreDir(final File file) { 
  25.         long fileSize = 0
  26.         if (file.isFile()) 
  27.             fileSize = file.length(); 
  28.         else { 
  29.             final File[] children = file.listFiles(); 
  30.             if (children != null
  31.                 for (final File child : children) { 
  32.                     if (child.isFile()) 
  33.                         fileSize += child.length(); 
  34.                     else { 
  35.                         startExploreDir(child); 
  36.                     } 
  37.                 } 
  38.         } 
  39.         try { 
  40.             fileSizes.put(fileSize); 
  41.         } catch (Exception ex) { 
  42.             throw new RuntimeException(ex); 
  43.         } 
  44.         pendingFileVisits.decrementAndGet(); 
  45.     } 
  46.     private long getTotalSizeOfFile(final String fileName) 
  47.             throws InterruptedException { 
  48.         service = Executors.newFixedThreadPool(100); 
  49.         try { 
  50.             startExploreDir(new File(fileName)); 
  51.             long totalSize = 0
  52.             while (pendingFileVisits.get() > 0 || fileSizes.size() > 0) { 
  53.                 final Long size = fileSizes.poll(10, TimeUnit.SECONDS); 
  54.                 totalSize += size; 
  55.             } 
  56.             return totalSize; 
  57.         } finally { 
  58.             service.shutdown(); 
  59.         } 
  60.     } 
  61.     public static void main(final String[] args) throws InterruptedException { 
  62.         final long start = System.nanoTime(); 
  63.         final long total = new ConcurrentTotalFileSizeWQueue() 
  64.                 .getTotalSizeOfFile(fileName); 
  65.         final long end = System.nanoTime(); 
  66.         System.out.println("Total Size: " + total); 
  67.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  68.     } 

(六)使用jdk7的ForkJoin來實現

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. import java.util.ArrayList; 
  4. import java.util.List; 
  5. import java.util.concurrent.ForkJoinPool; 
  6. import java.util.concurrent.ForkJoinTask; 
  7. import java.util.concurrent.RecursiveTask; 
  8. public class FileSize { 
  9.     private final static ForkJoinPool forkJoinPool = new ForkJoinPool(); 
  10.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  11.  
  12.     private static class FileSizeFinder extends RecursiveTask<Long> { 
  13.         final File file; 
  14.         public FileSizeFinder(final File theFile) { 
  15.             file = theFile; 
  16.         } 
  17.         @Override 
  18.         public Long compute() { 
  19.             long size = 0
  20.             if (file.isFile()) { 
  21.                 size = file.length(); 
  22.             } else { 
  23.                 final File[] children = file.listFiles(); 
  24.                 if (children != null) { 
  25.                     List<ForkJoinTask<Long>> tasks = new ArrayList<ForkJoinTask<Long>>(); 
  26.                     for (final File child : children) { 
  27.                         if (child.isFile()) { 
  28.                             size += child.length(); 
  29.                         } else { 
  30.                             tasks.add(new FileSizeFinder(child)); 
  31.                         } 
  32.                     } 
  33.                     for (final ForkJoinTask<Long> task : invokeAll(tasks)) { 
  34.                         size += task.join(); 
  35.                     } 
  36.                 } 
  37.             } 
  38.             return size; 
  39.         } 
  40.     } 
  41.     public static void main(final String[] args) { 
  42.         final long start = System.nanoTime(); 
  43.         final long total = forkJoinPool.invoke(new FileSizeFinder(new File("/home"))); 
  44.         final long end = System.nanoTime(); 
  45.         System.out.println("Total Size: " + total); 
  46.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  47.     } 
責任編輯:王雪燕 來源: codeceo
相關推薦

2024-01-31 09:24:58

2010-08-02 16:47:46

Flex

2020-06-23 09:52:31

運營效率首席信息官IT預算

2020-05-15 10:09:17

優化創新數字化轉型CIO

2019-10-08 10:28:36

Python程序員鏡音雙子

2016-10-12 13:53:38

JavaByteBufferRandomAcces

2021-02-05 08:03:52

Java

2024-08-29 08:04:14

2023-03-28 15:19:37

文件列表scandir函數

2013-10-21 14:26:04

2020-09-23 08:53:48

父文件夾模塊Python

2018-12-19 14:43:13

Linux命令搜索文件

2009-08-12 16:57:28

C#讀取文件夾

2024-03-15 11:35:11

配置文件應用程序開發

2024-08-19 01:00:00

讀取配置文件接口應用程序

2010-08-26 09:16:42

Web服務器

2020-12-22 08:15:05

Java字節流字符流

2017-11-03 10:40:25

Python復制文件方法

2009-06-26 10:05:10

獲取文件大小

2010-12-02 08:12:16

點贊
收藏

51CTO技術棧公眾號

久草资源在线视频| 无码人妻丰满熟妇区毛片蜜桃精品 | 亚洲国产日产av| 91黄色国产视频| 永久免费看片在线播放| 久久国产成人午夜av影院宅| 欧美一级二级在线观看| 免费观看日韩毛片| 国产午夜精品久久久久免费视| 精品一区二区免费| 国产91成人在在线播放| 国产精品国产三级国产专业不| 国产高清亚洲| 在线一区二区三区四区五区 | 成人a在线视频免费观看| 91在线小视频| 亚洲综合色av| 在线免费观看日韩视频| 亚洲精品1区2区| 久久视频在线播放| 国产三级短视频| 国产精品流白浆在线观看| 欧美日韩性生活| 中国丰满人妻videoshd| 在线观看av免费| 日本一区二区不卡视频| 久久99精品久久久久久久青青日本| 在线观看中文字幕码| 天堂影院一区二区| 91wwwcom在线观看| 国产精品1234区| 一区二区三区四区电影| 中文字幕在线国产精品| a视频免费观看| а√中文在线天堂精品| 日韩三级av在线播放| 午夜免费看毛片| 欧美成人精品三级网站| 欧美日韩国产中文精品字幕自在自线| 日本久久高清视频| 无遮挡的视频在线观看| 国产三级一区二区三区| 欧美日韩三区四区| 四虎精品成人免费网站| 99久久国产综合精品女不卡 | 九色精品国产蝌蚪| 亚洲精品久久久久久久久| www男人天堂| 91蝌蚪精品视频| 日韩免费观看高清完整版| 女王人厕视频2ⅴk| 日韩成人精品| 日韩一区二区三区在线观看| 在线播放免费视频| 久久久久久久久久久久电影| 91精品国产91久久久久久一区二区| 中文字幕第100页| 亚洲老司机网| 日韩一级大片在线观看| 免费黄色av网址| 国产一级成人av| 亚洲韩国日本中文字幕| a视频免费观看| 国产成人久久| 中文字幕国产精品| 亚洲欧美精品aaaaaa片| 欧美三级乱码| 91国内免费在线视频| 性色av免费观看| 奇米影视一区二区三区| 国产自产女人91一区在线观看| 国产男男gay网站| 国产99一区视频免费| 国内外成人免费视频| 久久精品国产亚洲a∨麻豆| 欧美激情一区二区三区蜜桃视频| 一区二区精品免费视频| 性国产高清在线观看| 亚洲图片欧美视频| 亚洲人成无码www久久久| 青青国产精品| 欧美精品一区二区三区很污很色的| 亚洲av成人精品一区二区三区| 亚洲人成精品久久久| 啊v视频在线一区二区三区| 久草免费新视频| 久久久成人网| 亚洲影视九九影院在线观看| 四虎影视在线播放| 亚洲女人的天堂| 黄色免费观看视频网站| 色综合一区二区日本韩国亚洲 | 色哟哟无码精品一区二区三区| 亚洲第一福利社区| 久久精品国产亚洲精品| 少妇一级淫片免费放中国| 久久精品久久综合| 国产精品夜夜夜一区二区三区尤| 黄色片在线免费观看| 一区二区在线电影| 一区二区三区国产免费| 高清日韩欧美| www日韩中文字幕在线看| 天天操天天摸天天干| 精品在线播放午夜| 欧美h视频在线| 成人性生交大片免费看在线播放| 欧洲视频一区二区| 玖玖爱在线精品视频| 天天综合亚洲| 国产91精品在线播放| 国产成人a人亚洲精品无码| 久久精品夜夜夜夜久久| 国产真人做爰毛片视频直播| 亚洲91在线| 国产一区二区三区视频在线观看| 亚洲国产精品午夜在线观看| 国产在线精品视频| 亚洲国产一区二区三区在线播| 国产三线在线| 日韩视频一区二区在线观看| 大吊一区二区三区| 久久久久久久高潮| 国产伦精品一区二区| 2021国产在线| 4438成人网| 99国产精品无码| 日韩专区在线视频| 品久久久久久久久久96高清| 涩涩视频在线播放| 日韩www在线| 日韩三级av在线| 国产精品一级二级三级| 婷婷视频在线播放| avtt久久| 九九九久久国产免费| 91午夜交换视频| 中文字幕一区日韩精品欧美| 香蕉视频禁止18| 波多野结衣在线播放一区| 欧美伊久线香蕉线新在线| 天天干,夜夜操| 亚洲综合视频在线观看| 第一页在线视频| 狠狠爱综合网| 国产成人精品福利一区二区三区 | 欧美顶级大胆免费视频| 国产精品永久免费| 欧美三级黄网| 欧美日韩的一区二区| 国精产品一区一区| 久久99国产精品尤物| 中文网丁香综合网| 国产一区二区三区免费观看在线 | 日韩大陆毛片av| 国产精品美女久久久久av爽| 91麻豆.com| 韩国日本美国免费毛片| 日韩精品首页| 亚洲精品免费在线视频| 国产白丝在线观看| 日韩精品在线观看一区| 免费的毛片视频| 中文字幕免费在线观看视频一区| 亚洲图色中文字幕| 欧美福利专区| 久久伦理网站| 97人人做人人爽香蕉精品| 中文字幕一区日韩电影| 国产丝袜视频在线观看| 亚洲电影在线播放| av中文字幕免费观看| 轻轻草成人在线| 亚洲成人动漫在线| 婷婷成人影院| 国产一区视频在线| av中文字幕在线看| 国产一区二区三区精品久久久| 一区二区三区亚洲视频| 亚洲成人高清在线| 国产性猛交xx乱| 国产.欧美.日韩| 欧美黑人又粗又大又爽免费| 911精品美国片911久久久 | 亚洲av毛片在线观看| 伊人精品在线| 视频一区二区精品| 成人午夜大片| 国产精品免费电影| 欧美xxx黑人xxx水蜜桃| 国产一区二区三区在线播放免费观看| 国产影视一区二区| 色综合天天综合色综合av| 艳妇荡乳欲伦69影片| 91丨porny丨在线| 亚洲一区二区福利视频| 久久精品网址| 日本a在线天堂| 精品理论电影在线| 国产一区在线观| 少妇高潮一区二区三区99| 91精品国产色综合| av毛片在线看| 在线国产精品视频| 黄色小视频免费在线观看| 欧美日韩日日摸| www.伊人久久| 亚洲一区二区五区| 亚洲伦理一区二区三区| 久久久久久久久伊人| 男人的天堂影院| 国产精品77777竹菊影视小说| 国产无套粉嫩白浆内谢的出处| 欧美aⅴ99久久黑人专区| 日韩电影免费观看高清完整| 美女一区2区| 99久久国产免费免费| 亚洲我射av| 国产精品色悠悠| 欧美magnet| 97精品欧美一区二区三区| 国产黄色在线观看| 日韩中文字幕网址| 二区在线观看| 国产午夜精品全部视频播放| 五月婷婷开心中文字幕| 亚洲福利视频专区| 丰满肥臀噗嗤啊x99av| 日韩一级免费一区| 精品国产av一区二区| 制服.丝袜.亚洲.另类.中文| 最新国产中文字幕| 欧美影视一区二区三区| 四虎影院在线免费播放| 日韩欧中文字幕| 性无码专区无码| 无码av免费一区二区三区试看 | 欧美人xxxx| 亚洲一区二区视频在线播放| 欧美日韩一区不卡| 亚洲香蕉在线视频| 欧美日韩成人综合| 97精品人妻一区二区三区香蕉 | av在线免费看片| 黑人巨大精品欧美黑白配亚洲| 色戒在线免费观看| 韩国成人在线视频| 蜜桃视频无码区在线观看| 国产99一区视频免费| 国产在线不卡av| 91影院在线观看| 亚欧洲乱码视频| 欧美激情综合五月色丁香小说| 级毛片内射视频| 国产精品福利一区| 亚洲天堂黄色片| 亚洲曰韩产成在线| 亚洲一区欧美在线| 在线免费观看日本欧美| 中文字幕人妻一区二区在线视频| 欧美性videosxxxxx| 91片黄在线观看喷潮| 精品少妇一区二区三区视频免付费 | www.4hu95.com四虎| 国产精品久久午夜| www青青草原| 午夜精品在线看| 免费视频网站在线观看入口| 欧美日韩久久久一区| 超碰人人人人人人| 日韩精品亚洲视频| 91ph在线| 午夜精品久久久久久久男人的天堂 | 国产午夜精品一区理论片| 日韩亚洲一区二区| 国产第一页在线| 国产精品视频内| aiss精品大尺度系列| 欧美一区二区三区精美影视| 五月天久久久| av免费观看网| 卡一卡二国产精品 | 污视频网站观看| 懂色av一区二区三区免费看| 9.1成人看片免费版| 18欧美乱大交hd1984| 日韩三级一区二区三区| 欧美日韩一区在线| 少妇高潮一区二区三区69| 在线观看91久久久久久| 污视频在线免费观看网站| 国产不卡av在线| 粉嫩精品导航导航| 亚洲欧洲久久| 中文亚洲欧美| 69久久精品无码一区二区| 久久久久久久综合| 国语对白一区二区| 4438x亚洲最大成人网| 玖玖综合伊人| 国模叶桐国产精品一区| 不卡的国产精品| 日韩电影免费观看在| 国产视频久久| 极品人妻一区二区| 国产精品系列在线| 久久青青草原亚洲av无码麻豆| 欧美刺激午夜性久久久久久久| 黑人与亚洲人色ⅹvideos| 国内精品久久久久久久久| 综合久久伊人| 小说区图片区图片区另类灬| 国产精品美女久久久| 日本一区二区免费视频| 日韩久久一区二区| 最新国产中文字幕| 亚洲最新av网址| 大胆人体一区二区| 久久青青草原| 亚洲免费黄色| 91人妻一区二区| 亚洲精品免费在线观看| а中文在线天堂| 亚洲天堂av网| 婷婷激情一区| 就去色蜜桃综合| 亚欧美中日韩视频| 亚洲欧美在线不卡| 精品久久久久久久久久ntr影视| 亚洲乱码在线观看| 色综合91久久精品中文字幕| 欧美欧美在线| 国产精品视频一二三四区| 狠狠色狠狠色综合系列| 成人免费毛片xxx| 56国语精品自产拍在线观看| 午夜激情视频在线观看| 国产中文字幕日韩| 国产韩日影视精品| www.com久久久| 亚洲欧洲综合另类在线| 国产美女裸体无遮挡免费视频| 日韩在线观看高清| 精品一区91| 国产精品视频网站在线观看| 懂色中文一区二区在线播放| 国产无遮挡裸体免费视频| 精品久久久久av影院| 91精品国产黑色瑜伽裤| 久久久99国产精品免费| 久久精品导航| 日日碰狠狠添天天爽| 欧美一区二区在线不卡| 神马午夜伦理不卡| 国产精品theporn88| 国产色综合网| 卡一卡二卡三在线观看| 欧美精品久久一区二区三区| 亚洲s色大片| 91在线免费看片| 日韩午夜黄色| 日韩免费成人av| 91麻豆精品国产| 国产天堂在线播放视频| 免费看成人午夜电影| 青青国产91久久久久久| 天天色影综合网| 亚洲第一黄色网| 电影天堂国产精品| 制服国产精品| 成人激情视频网站| 一区二区三区在线观看av| 色777狠狠综合秋免鲁丝| 日韩最新av| 99福利在线观看| 综合激情成人伊人| 后进极品白嫩翘臀在线视频| 国产97色在线|日韩| 久久久9色精品国产一区二区三区| 波多野结衣三级视频| 色综合中文综合网| dy888亚洲精品一区二区三区| 精品国产免费一区二区三区| 日韩精品欧美精品| 久久久久香蕉视频| 国产一区二区日韩精品欧美精品| 日韩一区二区三区色| 亚洲欧洲日产国码无码久久99 | 熟女熟妇伦久久影院毛片一区二区| 国产成a人亚洲精品| 波多野结衣毛片| 欧美高清视频在线| 成人精品电影| 喷水视频在线观看| 欧美高清www午色夜在线视频| 水蜜桃在线视频| 午夜久久久久久久久久久| 久久综合中文字幕| 成人免费一级视频| 国产免费一区二区三区香蕉精|