// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_BASE_CLIPBOARD_FILE_INFO_H_ #define UI_BASE_CLIPBOARD_FILE_INFO_H_ #include <string> #include <string_view> #include "base/component_export.h" #include "base/files/file_path.h" namespace ui { // struct that bundles a file's path with an optional display name. struct COMPONENT_EXPORT(UI_BASE_FILE_INFO) FileInfo { … }; // Returns UTF8 file:// URL. |file_path| is expected to be an absolute path, and // will be encoded as one regardless. E.g. '/path' and 'path' both encode as // 'file:///path'. std::string COMPONENT_EXPORT(UI_BASE_FILE_INFO) FilePathToFileURL(const base::FilePath& file_path); // Returns a list of ui::FileInfo from the text/uri-list CRLF-separated file:// // URLs in |uri_list| as per // https://www.iana.org/assignments/media-types/text/uri-list // URLs which cannot be parsed are ignored. std::vector<FileInfo> COMPONENT_EXPORT(UI_BASE_FILE_INFO) URIListToFileInfos(std::string_view uri_list); // Returns UTF8 text/uri-list CRLF-separated file:// URLs from filenames. std::string COMPONENT_EXPORT(UI_BASE_FILE_INFO) FileInfosToURIList(const std::vector<FileInfo>& filenames); } // namespace ui #endif // UI_BASE_CLIPBOARD_FILE_INFO_H_