Moving src/webrtc into src/.
In order to eliminate the WebRTC Subtree mirror in Chromium, WebRTC is moving the content of the src/webrtc directory up to the src/ directory. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true TBR=tommi@webrtc.org Bug: chromium:611808 Change-Id: Iac59c5b51b950f174119565bac87955a7994bc38 Reviewed-on: https://webrtc-review.googlesource.com/1560 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Henrik Kjellander <kjellander@webrtc.org> Cr-Commit-Position: refs/heads/master@{#19845}
This commit is contained in:
committed by
Commit Bot
parent
6674846b4a
commit
bb547203bf
93
rtc_base/win32filesystem.cc
Normal file
93
rtc_base/win32filesystem.cc
Normal file
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Copyright 2004 The WebRTC Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "webrtc/rtc_base/win32filesystem.h"
|
||||
|
||||
#include <shellapi.h>
|
||||
#include <shlobj.h>
|
||||
#include <tchar.h>
|
||||
#include "webrtc/rtc_base/win32.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "webrtc/rtc_base/arraysize.h"
|
||||
#include "webrtc/rtc_base/checks.h"
|
||||
#include "webrtc/rtc_base/fileutils.h"
|
||||
#include "webrtc/rtc_base/pathutils.h"
|
||||
#include "webrtc/rtc_base/stream.h"
|
||||
#include "webrtc/rtc_base/stringutils.h"
|
||||
|
||||
// In several places in this file, we test the integrity level of the process
|
||||
// before calling GetLongPathName. We do this because calling GetLongPathName
|
||||
// when running under protected mode IE (a low integrity process) can result in
|
||||
// a virtualized path being returned, which is wrong if you only plan to read.
|
||||
// TODO: Waiting to hear back from IE team on whether this is the
|
||||
// best approach; IEIsProtectedModeProcess is another possible solution.
|
||||
|
||||
namespace rtc {
|
||||
|
||||
bool Win32Filesystem::DeleteFile(const Pathname &filename) {
|
||||
LOG(LS_INFO) << "Deleting file " << filename.pathname();
|
||||
if (!IsFile(filename)) {
|
||||
RTC_DCHECK(IsFile(filename));
|
||||
return false;
|
||||
}
|
||||
return ::DeleteFile(ToUtf16(filename.pathname()).c_str()) != 0;
|
||||
}
|
||||
|
||||
std::string Win32Filesystem::TempFilename(const Pathname &dir,
|
||||
const std::string &prefix) {
|
||||
wchar_t filename[MAX_PATH];
|
||||
if (::GetTempFileName(ToUtf16(dir.pathname()).c_str(),
|
||||
ToUtf16(prefix).c_str(), 0, filename) != 0)
|
||||
return ToUtf8(filename);
|
||||
RTC_NOTREACHED();
|
||||
return "";
|
||||
}
|
||||
|
||||
bool Win32Filesystem::MoveFile(const Pathname &old_path,
|
||||
const Pathname &new_path) {
|
||||
if (!IsFile(old_path)) {
|
||||
RTC_DCHECK(IsFile(old_path));
|
||||
return false;
|
||||
}
|
||||
LOG(LS_INFO) << "Moving " << old_path.pathname()
|
||||
<< " to " << new_path.pathname();
|
||||
return ::MoveFile(ToUtf16(old_path.pathname()).c_str(),
|
||||
ToUtf16(new_path.pathname()).c_str()) != 0;
|
||||
}
|
||||
|
||||
bool Win32Filesystem::IsFolder(const Pathname &path) {
|
||||
WIN32_FILE_ATTRIBUTE_DATA data = {0};
|
||||
if (0 == ::GetFileAttributesEx(ToUtf16(path.pathname()).c_str(),
|
||||
GetFileExInfoStandard, &data))
|
||||
return false;
|
||||
return (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ==
|
||||
FILE_ATTRIBUTE_DIRECTORY;
|
||||
}
|
||||
|
||||
bool Win32Filesystem::IsFile(const Pathname &path) {
|
||||
WIN32_FILE_ATTRIBUTE_DATA data = {0};
|
||||
if (0 == ::GetFileAttributesEx(ToUtf16(path.pathname()).c_str(),
|
||||
GetFileExInfoStandard, &data))
|
||||
return false;
|
||||
return (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0;
|
||||
}
|
||||
|
||||
bool Win32Filesystem::GetFileSize(const Pathname &pathname, size_t *size) {
|
||||
WIN32_FILE_ATTRIBUTE_DATA data = {0};
|
||||
if (::GetFileAttributesEx(ToUtf16(pathname.pathname()).c_str(),
|
||||
GetFileExInfoStandard, &data) == 0)
|
||||
return false;
|
||||
*size = data.nFileSizeLow;
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace rtc
|
||||
Reference in New Issue
Block a user