Chromium Code Reviews| Index: base/files/file_util_win.cc |
| diff --git a/base/files/file_util_win.cc b/base/files/file_util_win.cc |
| index d70454df3836a7067f71eecf5a0ae8673376f474..ddb9c2806a75bae7ed7fc03033693335fe1d6020 100644 |
| --- a/base/files/file_util_win.cc |
| +++ b/base/files/file_util_win.cc |
| @@ -559,6 +559,26 @@ bool NormalizeToNativeFilePath(const FilePath& path, FilePath* nt_path) { |
| return success; |
| } |
| +bool IsOnNetworkDrive(const base::FilePath& path) { |
| + win::ScopedHandle handle( |
| + ::CreateFileW(path.value().c_str(), |
| + GENERIC_READ, |
|
Will Harris
2016/04/15 23:42:19
added GENERIC_READ to be explicit
|
| + kFileShareAll, |
|
Will Harris
2016/04/15 23:42:19
using kFileShareAll like other tests.
|
| + NULL, |
| + OPEN_EXISTING, |
| + FILE_FLAG_BACKUP_SEMANTICS, // Needed to open directory. |
| + NULL)); |
| + |
| + if (!handle.IsValid()) |
| + return false; |
| + |
| + // If able to get network information, then the file is on a network. |
| + FILE_REMOTE_PROTOCOL_INFO remote_proto_info = {0}; |
| + return !!::GetFileInformationByHandleEx(handle.Get(), FileRemoteProtocolInfo, |
|
Will Harris
2016/04/15 23:42:19
returns straight
|
| + &remote_proto_info, |
| + sizeof(remote_proto_info)); |
| +} |
| + |
| // TODO(rkc): Work out if we want to handle NTFS junctions here or not, handle |
| // them if we do decide to. |
| bool IsLink(const FilePath& file_path) { |