Elm:
检查目录是否存在
How to: (怎么做:)
Elm是前端语言,直接访问文件系统不是它的工作。但你可以通过Elm和后端服务器交流来实现。下面是个例子:
port checkDirectory : String -> Cmd msg
port directoryExists : (Bool -> msg) -> Sub msg
type Msg
= CheckIfDirectoryExists String
| DirectoryExists Bool
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
CheckIfDirectoryExists path ->
(model, checkDirectory path)
DirectoryExists exists ->
( { model | dirExists = exists }, Cmd.none )
subscriptions : Model -> Sub Msg
subscriptions model =
directoryExists DirectoryExists
这里的checkDirectory
和directoryExists
是端口(ports),连接Elm和JavaScript。JavaScript部分可能是这样的:
app.ports.checkDirectory.subscribe(function(path) {
var exists = fs.existsSync(path); // 假设你使用Node.js的fs模块
app.ports.directoryExists.send(exists);
});
Deep Dive (深入了解)
历史上,Elm专注于前端开发,不涉及直接文件系统操作。开发者通常需要依赖JavaScript等后端语言的接口。其他语言如Node.js内置了文件系统操作方法。实现上,检查目录通常涉及操作系统层面的调用。