--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/fileutils/inc/fileutilities.h Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,208 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: FileUtilities - Provied file utilities
+ *
+*/
+
+
+#ifndef FILEUTILITIES_H
+#define FILEUTILITIES_H
+
+#include <list>
+#include <string>
+
+namespace java
+{
+namespace fileutils
+{
+
+OS_NONSHARABLE_CLASS(FileUtilities)
+{
+public:
+
+ /**
+ * Returns boolean value indicating if the path specified pointed to a file.
+ *
+ * @param[in] aPath: Absolute path of the file/directory
+ * @return true if the path specified was a file. false otherwise.
+ */
+ OS_IMPORT static bool isFile(const std::wstring& aPath);
+
+ /**
+ * Returns boolean value indicating if the path specified pointed to a directory.
+ *
+ * @param[in] aPath: Absolute path of the file/directory
+ * @return true if the path specified was a directory. false otherwise.
+ */
+ OS_IMPORT static bool isDirectory(const std::wstring& aPath);
+
+ /**
+ * Checks to see if the path specified exists.
+ *
+ * @param[in] aPath: Absolute path of the file/directory
+ * @return true if the path specified exists. false otherwise.
+ */
+ OS_IMPORT static bool exists(const std::wstring& aPath);
+
+ /**
+ * Checks to see if the path specified can be read.
+ *
+ * @param[in] aPath: Absolute path of the file/directory
+ * @return true if the path specified can be read. false otherwise.
+ */
+ OS_IMPORT static bool canRead(const std::wstring& aPath);
+
+ /**
+ * Checks to see if the path specified can be written into.
+ *
+ * @param[in] aPath: Absolute path of the file/directory
+ * @return true if the path specified can be written. false otherwise.
+ */
+ OS_IMPORT static bool canWrite(const std::wstring& aPath);
+
+ /**
+ * Returns the size of the file.
+ *
+ * @param[in] aPath: Absolute path of the file
+ * @return size of the file in bytes.
+ * @throws errno value in case of error
+ */
+ OS_IMPORT static long fileSize(const std::wstring& aPath);
+
+ /**
+ * Returns the last modified time of the file/directory
+ *
+ * @param[in] aPath: Absolute path of the file/directory
+ * @return last modified time of the file.
+ * @throws errno value in case of error
+ */
+ OS_IMPORT static long lastModified(const std::wstring& aPath);
+
+ /**
+ * Changes the readable attribute of the file based on the aReadable attribute
+ *
+ * @param[in] aFile: Absolute path of the file/directory
+ * @param[in] aReadable: boolean indicating if read must be allowed or not.
+ * @return 0 in case of success, errno value in case of failure
+ */
+ OS_IMPORT static int setReadable(const std::wstring& aFile, bool aReadable);
+
+ /**
+ * Changes the writable attribute of the file based on the aWritable attribute
+ *
+ * @param[in] aFile: Absolute path of the file/directory
+ * @param[in] aWritable: boolean indicating if write must be allowed or not.
+ * @return 0 in case of success, errno value in case of failure
+ */
+ OS_IMPORT static int setWritable(const std::wstring& aFile, bool aWritable);
+
+ /**
+ * Returns the available size of the file system.
+ *
+ * @param[in] aFile: Absolute path of the file.
+ * @return Available size of File System, -1 if error during access or
+ * process does not have access to the file system.
+ */
+ OS_IMPORT static long long availableSize(const std::wstring& aFile);
+
+ /**
+ * Returns the Total Size of the File System.
+ *
+ * @param[in] aFile: Absolute path of the file.
+ * @return Total Size of File System, -1 if error during access or
+ * process does not have access to the file system.
+ */
+ OS_IMPORT static long long totalSize(const std::wstring& aFile);
+
+ /**
+ * Returns the Used Size of the File System.
+ *
+ * @param[in] aFile: Absolute path of the file.
+ * @return Used Size in File System, -1 if error during access or
+ * process does not have access to the file system.
+ */
+ OS_IMPORT static long long usedSize(const std::wstring& aFile);
+
+ /**
+ * Checks if the File/Directory is hidden.
+ * In Linux, it is simply a check to see if the File begins with a "."
+ * In File Systems that rely on attributes to differentiate between hidden
+ * and visible files, the method checks those attributes.
+ *
+ * @param[in] aFile: Absolute path of the file.
+ * @return true of the file is hidden, false otherwise
+ */
+ OS_IMPORT static bool isHidden(const std::wstring& aPath);
+
+ /**
+ * Lists the roots of the File System. Roots are synonymous to mount points
+ * in Linux file system.
+ *
+ * @return string containing the roots. Delimited by "*" Character.
+ * The implementation using this is responsible to split it into
+ * multiple tokens.
+ */
+ OS_IMPORT static std::wstring listRoots();
+
+ /**
+ * Method to get the contents of a Directory. By default, hidden files are
+ * also included.
+ *
+ * @param[in] dirName: Directory name with path included.
+ * @return string of names delimited by "*"
+ */
+ OS_IMPORT static std::wstring getDirContents(const std::wstring& aDirName);
+
+ /**
+ * Method to get the contents of a Directory.
+ *
+ * @param[in] aDirName: Directory name with path included.
+ * @param[in] aIncludeHidden: specifies if hidden files must be included
+ * @return string of names delimited by "*"
+ */
+ OS_IMPORT static std::wstring getDirContents(const std::wstring& aDirName, const bool aIncludeHidden);
+
+ /**
+ * Method to get the contents of a Directory.
+ *
+ * @param[in] aDirName: Directory name with path included.
+ * @return a list of strings containing the names of the contents
+ */
+ OS_IMPORT static std::list<std::wstring> getDirContentsList(const std::wstring& aDirName);
+
+ /**
+ * Returns the size of the Directory
+ *
+ * @param[in] aDirName: Directory name with complete path
+ * @param[in] aIncludeSubDirs: To specify if the contents of the
+ * sub-directories also needs to be taken while calculating the
+ * size of the file.
+ * @return the size of the Directory
+ */
+ OS_IMPORT static long getDirSize(const std::wstring& aDirName, const bool aIncludeSubDirs);
+
+ /**
+ * Creates a directory tree specified.
+ *
+ * @param[in] aDirPath: Directory name with complete path
+ * @return 0 on success, -1 on failure
+ */
+ OS_IMPORT static int makeDirAll(const std::wstring& aDirPath);
+
+}; //end class
+
+} //end namespace fileutils
+} //end namespace java
+
+#endif // FILEUTILITIES_H