MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / RecursivelyCreateDir

Method RecursivelyCreateDir

tensorflow/core/platform/file_system.cc:138–170  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138Status FileSystem::RecursivelyCreateDir(const string& dirname) {
139 StringPiece scheme, host, remaining_dir;
140 io::ParseURI(dirname, &scheme, &host, &remaining_dir);
141 std::vector<StringPiece> sub_dirs;
142 while (!remaining_dir.empty()) {
143 Status status = FileExists(io::CreateURI(scheme, host, remaining_dir));
144 if (status.ok()) {
145 break;
146 }
147 if (status.code() != error::Code::NOT_FOUND) {
148 return status;
149 }
150 // Basename returns "" for / ending dirs.
151 if (!str_util::EndsWith(remaining_dir, "/")) {
152 sub_dirs.push_back(io::Basename(remaining_dir));
153 }
154 remaining_dir = io::Dirname(remaining_dir);
155 }
156
157 // sub_dirs contains all the dirs to be created but in reverse order.
158 std::reverse(sub_dirs.begin(), sub_dirs.end());
159
160 // Now create the directories.
161 string built_path(remaining_dir);
162 for (const StringPiece sub_dir : sub_dirs) {
163 built_path = io::JoinPath(built_path, sub_dir);
164 Status status = CreateDir(io::CreateURI(scheme, host, built_path));
165 if (!status.ok() && status.code() != tensorflow::error::ALREADY_EXISTS) {
166 return status;
167 }
168 }
169 return Status::OK();
170}
171
172Status FileSystem::CopyFile(const string& src, const string& target) {
173 return FileSystemCopyFile(this, src, this, target);

Callers

nothing calls this directly

Calls 14

ParseURIFunction · 0.85
CreateURIFunction · 0.85
EndsWithFunction · 0.85
BasenameFunction · 0.85
DirnameFunction · 0.85
reverseFunction · 0.85
FileExistsFunction · 0.50
JoinPathFunction · 0.50
emptyMethod · 0.45
okMethod · 0.45
codeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected