12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef STORAGE_BROWSER_FILE_SYSTEM_NATIVE_FILE_UTIL_H_
- #define STORAGE_BROWSER_FILE_SYSTEM_NATIVE_FILE_UTIL_H_
- #include <stdint.h>
- #include <memory>
- #include "base/component_export.h"
- #include "base/files/file.h"
- #include "base/files/file_path.h"
- #include "storage/browser/file_system/file_system_file_util.h"
- namespace base {
- class Time;
- }
- namespace storage {
- // A thin wrapper class for accessing the OS native filesystem.
- // This performs common error checks necessary to implement FileUtil family
- // in addition to perform native filesystem operations.
- //
- // For the error checks it performs please see the comment for
- // FileSystemFileUtil interface
- // (storage/browser/file_system/file_system_file_util.h).
- //
- // Note that all the methods of this class are static and this does NOT
- // inherit from FileSystemFileUtil.
- class COMPONENT_EXPORT(STORAGE_BROWSER) NativeFileUtil {
- public:
- enum CopyOrMoveMode { COPY_NOSYNC, COPY_SYNC, MOVE };
- NativeFileUtil() = delete;
- NativeFileUtil(const NativeFileUtil&) = delete;
- NativeFileUtil& operator=(const NativeFileUtil&) = delete;
- static CopyOrMoveMode CopyOrMoveModeForDestination(
- const FileSystemURL& dest_url,
- bool copy);
- static base::File CreateOrOpen(const base::FilePath& path,
- uint32_t file_flags);
- static base::File::Error EnsureFileExists(const base::FilePath& path,
- bool* created);
- static base::File::Error CreateDirectory(const base::FilePath& path,
- bool exclusive,
- bool recursive);
- static base::File::Error GetFileInfo(const base::FilePath& path,
- base::File::Info* file_info);
- static std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator>
- CreateFileEnumerator(const base::FilePath& root_path, bool recursive);
- static base::File::Error Touch(const base::FilePath& path,
- const base::Time& last_access_time,
- const base::Time& last_modified_time);
- static base::File::Error Truncate(const base::FilePath& path, int64_t length);
- static bool PathExists(const base::FilePath& path);
- static bool DirectoryExists(const base::FilePath& path);
- static base::File::Error CopyOrMoveFile(
- const base::FilePath& src_path,
- const base::FilePath& dest_path,
- FileSystemOperation::CopyOrMoveOptionSet options,
- CopyOrMoveMode mode);
- static base::File::Error DeleteFile(const base::FilePath& path);
- static base::File::Error DeleteDirectory(const base::FilePath& path);
- };
- } // namespace storage
- #endif // STORAGE_BROWSER_FILE_SYSTEM_NATIVE_FILE_UTIL_H_
|