src/hotspot/os/windows/os_windows.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
open Cdiff src/hotspot/os/windows/os_windows.cpp
src/hotspot/os/windows/os_windows.cpp
Print this page
*** 4392,4408 ****
return ::_fdopen(fd, mode);
}
// Is a (classpath) directory empty?
bool os::dir_is_empty(const char* path) {
! WIN32_FIND_DATA fd;
! HANDLE f = FindFirstFile(path, &fd);
if (f == INVALID_HANDLE_VALUE) {
! return true;
}
FindClose(f);
! return false;
}
// create binary file, rewriting existing file if required
int os::create_binary_file(const char* path, bool rewrite_existing) {
int oflags = _O_CREAT | _O_WRONLY | _O_BINARY;
--- 4392,4447 ----
return ::_fdopen(fd, mode);
}
// Is a (classpath) directory empty?
bool os::dir_is_empty(const char* path) {
! bool is_empty = false;
! char* search_path = (char*)os::malloc(strlen(path) + 3, mtInternal);
! if (search_path == NULL) {
! errno = ENOMEM;
! return false;
! }
! strcpy(search_path, path);
! // Append "*", or possibly "\\*", to path
! if (path[1] == ':' &&
! (path[2] == '\0' ||
! (path[2] == '\\' && path[3] == '\0'))) {
! // No '\\' needed for cases like "Z:" or "Z:\"
! strcat(search_path, "*");
! }
! else {
! strcat(search_path, "\\*");
! }
! errno_t err = ERROR_SUCCESS;
! wchar_t* wpath = create_unc_path(search_path, err);
! if (err != ERROR_SUCCESS) {
! if (wpath != NULL) {
! destroy_unc_path(wpath);
! }
! os::free(search_path);
! errno = err;
! return false;
! }
! WIN32_FIND_DATAW fd;
! HANDLE f = ::FindFirstFileW(wpath, &fd);
! destroy_unc_path(wpath);
if (f == INVALID_HANDLE_VALUE) {
! is_empty = true;
! } else {
! is_empty = true;
! while (is_empty && ::FindNextFileW(f, &fd)) {
! // An empty directory contains only the current directory file
! // and the previous directory file.
! if ((wcscmp(fd.cFileName, L".") != 0) &&
! (wcscmp(fd.cFileName, L"..") != 0)) {
! is_empty = false;
! }
}
FindClose(f);
! }
! os::free(search_path);
! return is_empty;
}
// create binary file, rewriting existing file if required
int os::create_binary_file(const char* path, bool rewrite_existing) {
int oflags = _O_CREAT | _O_WRONLY | _O_BINARY;
src/hotspot/os/windows/os_windows.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File