2015-09-11 36 views
1

這個問題可能聽起來很天真,但我明白,在分層文件系統中,目錄可以包含其他文件。但是,對於不是目錄的東西(例如vanilla「文件」),我無法提供一個好名字 - 我不能僅僅因爲class Directory extends Files就稱它們爲文件。 我想要做的類型安全的操作(例如,如果我嘗試列出文件或讀取的目錄編譯會失敗):在計算機術語中,什麼叫「非目錄」?

sealed trait File { 
    def path: Path 
} 
case class Directory(path: Path, children: Iterable[File]) extends File 
case class VanillaFile?(path: Path, contents: Iterable[Byte]) extends File 

我應該爲VanillaFile是一個更好的名字嗎?

編輯: 正如指出的那樣,在某些文件系統的一兩件事:

case class SymbolicLink(target: File) extends File 
+0

我不認爲這是一定要的文件歸類爲 「目錄」 或 「不目錄」 是個好主意。例如看看java.nio.Files中的「is *」方法 - 你也可以有符號鏈接。 –

+0

>>什麼應該是一個更好的名字爲VanillaFile - StrawberryFile –

+0

@AndyTurner:好點。但是,問題依然存在。我稱之爲香草文件(即不是目錄或鏈接的東西)? – pathikrit

回答