2015-12-04 67 views
0

檢查文件是否存在或目錄有區別嗎?檢查文件是否存在與Unix中的目錄

例如,如果我們在U​​NIX一個命令,其檢查是否: 「C:/HelloWorld/hello.java」 存在 與 「C:/ HelloWorld」 的存在

當這些精確值喂,它會區分文件還是目錄?或者文件也被認爲是目錄路徑的一種形式?

+0

'C:/ HelloWorld'和'C:/ HelloWorld/hello.java'可能不存在。 – 5gon12eder

回答

1

您可以測試是否「東西存在」或一個文件是否存在,或目錄是否存在(或幾個人,看到man test

if [ -e "/path/to/something" ]; then 
    printf "Something exists there\n" 
fi 
if [ -f "/path/to/something" ]; then 
    printf "There is a file there\n" 
fi 
if [ -d "/path/to/something" ]; then 
    printf "There is a directory there\n" 
fi 

,但你必須測試每一個環節,如果C:/HelloWorld不存在,那麼c:/HelloWorld/hello.java也不會,但如果你知道該文件不存在,你就不知道該目錄是否存在。

+0

謝謝。 只需要再次確認,所以通過使用-e標誌,它所提供的路徑是文件還是目錄是沒有什麼區別的?無論什麼情況,都可以確認「某物」存在。 – Kyanite

+0

@Kyanite:是的,-e會按你的要求做。作爲程序員,你需要學會做一些小測試來證明自己假設的真實性或錯誤性。執行上述代碼對於測試儘可能多的場景非常簡單,因爲您可以想象「確認」某個「存在」。是?去繁榮!祝你好運。 – shellter

0

簡短的回答是這樣的,檢查文件或目錄是否存在的代碼是這樣的。

在幕後,庫通過衆所周知的API調用文件系統管理器來檢查與參數(文件或目錄)匹配的inode。

然後,API可以根據文件系統屬性確定它是否具有指示文件或目錄存在的inode分配。