⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.h

📁 C++ class libraries for network-centric, portable applications, integrated perfectly with the C++ St
💻 H
字号:
//// File.h//// $Id: //poco/1.2/Foundation/include/Poco/File.h#1 $//// Library: Foundation// Package: Filesystem// Module:  File//// Definition of the File class.//// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.// and Contributors.//// Permission is hereby granted, free of charge, to any person or organization// obtaining a copy of the software and accompanying documentation covered by// this license (the "Software") to use, reproduce, display, distribute,// execute, and transmit the Software, and to prepare derivative works of the// Software, and to permit third-parties to whom the Software is furnished to// do so, all subject to the following:// // The copyright notices in the Software and this entire statement, including// the above license grant, this restriction and the following disclaimer,// must be included in all copies of the Software, in whole or in part, and// all derivative works of the Software, unless such copies or derivative// works are solely in the form of machine-executable object code generated by// a source language processor.// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER// DEALINGS IN THE SOFTWARE.//#ifndef Foundation_File_INCLUDED#define Foundation_File_INCLUDED#include "Poco/Foundation.h"#include "Poco/Timestamp.h"#include <vector>#if defined(POCO_OS_FAMILY_WINDOWS) && defined(POCO_WIN32_UTF8)#include "Poco/File_WIN32U.h"#elif defined(POCO_OS_FAMILY_WINDOWS)#include "Poco/File_WIN32.h"#elif defined(POCO_OS_FAMILY_UNIX)#include "Poco/File_UNIX.h"#else#include "Poco/File_VMS.h"#endifnamespace Poco {class Path;class Foundation_API File: private FileImpl	/// The File class provides methods for working with a file.{public:	typedef FileSizeImpl FileSize;	File();		/// Creates the file.	File(const std::string& path);		/// Creates the file.			File(const char* path);		/// Creates the file.	File(const Path& path);		/// Creates the file.			File(const File& file);		/// Copy constructor.	virtual ~File();		/// Destroys the file.		File& operator = (const File& file);		/// Assignment operator.	File& operator = (const std::string& path);		/// Assignment operator.	File& operator = (const char* path);		/// Assignment operator.	File& operator = (const Path& path);		/// Assignment operator.			void swap(File& file);		/// Swaps the file with another one.	const std::string& path() const;		/// Returns the path.		bool exists() const;		/// Returns true iff the file exists.			bool canRead() const;		/// Returns true iff the file is readable.			bool canWrite() const;		/// Returns true iff the file is writeable.			bool isFile() const;		/// Returns true iff the file is a regular file.			bool isLink() const;		/// Returns true iff the file is a symbolic link.			bool isDirectory() const;		/// Returns true iff the file is a directory.		Timestamp created() const;		/// Returns the creation date of the file.	Timestamp getLastModified() const;		/// Returns the modification date of the file.			void setLastModified(const Timestamp& ts);		/// Sets the modification date of the file.			FileSize getSize() const;		/// Returns the size of the file in bytes.			void setSize(FileSize size);		/// Sets the size of the file in bytes. Can be used		/// to truncate a file.			void setWriteable(bool flag = true);		/// Makes the file writeable (if flag is true), or		/// non-writeable (if flag is false) by setting the		/// file's flags in the filesystem accordingly.			void setReadOnly(bool flag = true);		/// Makes the file non-writeable (if flag is true), or		/// writeable (if flag is false) by setting the		/// file's flags in the filesystem accordingly.			void copyTo(const std::string& path) const;		/// Copies the file to the given path. The target path		/// can be a directory.	void moveTo(const std::string& path);		/// Copies the file to the given path and removes the		/// original file. The target path can be a directory.			void renameTo(const std::string& path);		/// Renames the file to the new name.			void remove(bool recursive = false);		/// Deletes the file. If recursive is true and the		/// file is a directory, recursively deletes all		/// files in the directory.		bool createFile();		/// Creates a new, empty file in an atomic operation.		/// Returns true if the file has been created and false		/// if the file already exists. Throws an exception if		/// an error occurs.		bool createDirectory();		/// Creates a directory. Returns true if the directory		/// has been created and false if it already exists.		/// Throws an exception if an error occurs.		void createDirectories();		/// Creates a directory (and all parent directories		/// if necessary).			void list(std::vector<std::string>& files) const;		/// Fills the vector with the names of all		/// files in the directory.	void list(std::vector<File>& files) const;		/// Fills the vector with the names of all		/// files in the directory.	bool operator == (const File& file) const;	bool operator != (const File& file) const;	bool operator <  (const File& file) const;	bool operator <= (const File& file) const;	bool operator >  (const File& file) const;	bool operator >= (const File& file) const;};//// inlines//inline const std::string& File::path() const{	return getPathImpl();}inline bool File::operator == (const File& file) const{	return getPathImpl() == file.getPathImpl();}inline bool File::operator != (const File& file) const{	return getPathImpl() != file.getPathImpl();}inline bool File::operator < (const File& file) const{	return getPathImpl() < file.getPathImpl();}inline bool File::operator <= (const File& file) const{	return getPathImpl() <= file.getPathImpl();}inline bool File::operator > (const File& file) const{	return getPathImpl() > file.getPathImpl();}inline bool File::operator >= (const File& file) const{	return getPathImpl() >= file.getPathImpl();}inline void swap(File& f1, File& f2){	f1.swap(f2);}} // namespace Poco#endif // Foundation_File_INCLUDED

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -