我寫了一些java代碼,它使用dir.listFiles().length;
獲取目錄中文件的數量。命令ls -l | wc
給了我一個不同的數字。我相信這兩個命令都會跳過隱藏的目錄。造成不同數字的原因是什麼?Java的dir.listFiles()和* .nix的ls之間有什麼區別?
回答
ls -l | wc
計數行ls -l
輸出,與單個文件的目錄中它仍然會輸出2線,這並不意味着它的數目有2個文件目錄
謝謝Jigar。僅使用ls仍會返回不同的數字。另外,我創建了一個帶有一個文件的目錄,並且'ls | wc'報告'1 1 4' – user465001 2014-09-21 16:21:13
如果您想要從Java獲取使用Java方式的文件數 – 2014-09-21 16:23:54
內從man wc
:
wc - print newline, word, and byte counts for each file.
當命令ls -l | wc
給出類似於3 7 15
的輸出時,wc
表明輸入中有3個換行符,7個字和15個字符(字節)(輸出ls -l
)。 3個換行符表示有3個文件,因爲ls -l
用換行符列出每個文件。
另一方面,Java中的dir.listFiles().length
是由dir.listFiles()
方法返回的File
數組長度,這個方法的確是dir
中的文件數。
如果從wc
希望類似的結果,通過-lines
或者乾脆-l
選項,只打印換行符計數:
ls -l | wc -l
最重要的,則dir.listFiles()
將列出所有在dir
包括隱藏文件其中ls
沒有默認列表。爲了與Java的結果一致,請使用:
ls -la | wc -l
- 1. 「echo'hello'; ls」vs「echo'hello'&& ls」之間的區別?
- 2. Groovy的AnnotationNode和Java的註釋之間有什麼區別?
- 3. Java的equals()和C++的operator ==之間有什麼區別?
- 4. Java的java.lang.Runtime.exec()和PHP的exec()之間有什麼區別?
- 5. 「層」和「層」之間有什麼區別?
- 6. Tableau和QlikView之間有什麼區別
- 7. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 8. @Entity和@embeddable之間有什麼區別
- 9. ContentObservable和DataSetObservable之間有什麼區別?
- 10. touchmove和gesturechange之間有什麼區別?
- 11. :notification.flags和notification.defaults之間有什麼區別?
- 12. proc和lambda之間有什麼區別?
- 13. :: after和after之間有什麼區別?
- 14. read()和io.read()之間有什麼區別?
- 15. Request()和Request.Form()之間有什麼區別?
- 16. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 17. getA()和this.getA()之間有什麼區別?
- 18. (int)和intval()之間有什麼區別?
- 19. set_value和= pandas之間有什麼區別
- 20. * zoom和zoom之間有什麼區別?
- 21. {0}和「」之間有什麼區別?
- 22. typedef和using之間有什麼區別?
- 23. 「」和「'之間有什麼區別?
- 24. STDIN和tty之間有什麼區別?
- 25. +和%之間有什麼區別?
- 26. sysfs_create_file()和sysfs_create_group()之間有什麼區別?
- 27. Lazy.Force()和Lazy.Value之間有什麼區別
- 28. -existingObjectWithID:error:和-objectWithID之間有什麼區別?
- 29. ReleaseFloatArrayElements和DeleteLocalRef之間有什麼區別
- 30. AutomationProperties.AutomationID和AutomationProperties.Name之間有什麼區別?
只是要知道,哪一個是正確的? – 2014-09-21 16:05:04
那麼,這個目錄有近2000個文件,所以我不能確定。對於包含較少文件的目錄,這些程序似乎報告了合適的總數。 – user465001 2014-09-21 16:09:33
不同之處在於'ls -l'返回一個額外的行(它表示類似於:'Total:#####') – Barranka 2014-09-21 16:09:57