2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * @author Zbigniew Kostrzewa (z.kostrzewa@samsung.com)
27 #include <Commons/Exception.h>
31 int try_mkdir(const char* path,
37 if (::stat(path, &st) != 0) {
38 if (::mkdir(path, mode) != 0) {
41 } else if (!S_ISDIR(st.st_mode)) {
49 int mkpath(const char* path,
52 char* copy = ::strdup(path);
61 while ((0 == err) && (NULL != (slash = ::strchr(ptr, '/')))) {
64 err = try_mkdir(copy, mode);
71 err = try_mkdir(path, mode);
79 namespace WrtDeviceApis {
80 namespace Filesystem {
82 bool nodeExists(const std::string& path)
85 if (stat(path.c_str(), &info) == 0) {
86 if (S_ISDIR(info.st_mode)) {
93 void makePath(const std::string& path,
96 if (mkpath(path.c_str(), mode) == -1) {
97 ThrowMsg(Commons::PlatformException, "Couldn't create path: " << path);