Merge pull request #115 from detro/dev-commonjs_fileio

Completed implementation of "fs" basic modules
1.3
Ariya Hidayat 2011-07-20 22:04:55 -07:00
commit 5adc92aec0
2 changed files with 74 additions and 9 deletions

View File

@ -88,7 +88,16 @@ window.WebPage = function() {
return page;
};
// Make "fs.open" throw an exception in case it fails
// window.fs
// JavaScript "shim" to throw exceptions in case a critical operation fails.
/** Open and return a "file" object.
* It will throw exception if it fails.
*
* @param path Path of the file to open
* @param mode Open Mode. A string made of 'r', 'w', 'a/+' characters.
* @return "file" object
*/
window.fs.open = function(path, mode) {
var file = window.fs._open(path, mode);
if (file) {
@ -96,3 +105,31 @@ window.fs.open = function(path, mode) {
}
throw "Unable to open file '"+ path +"'";
};
/** Open, read and return content of a file.
* It will throw an exception if it fails.
*
* @param path Path of the file to read from
* @return file content
*/
window.fs.read = function(path) {
var f = fs.open(path, 'r'),
content = f.read();
f.close();
return content;
};
/** Open and write content to a file
* It will throw an exception if it fails.
*
* @param path Path of the file to read from
* @param content Content to write to the file
* @param mode Open Mode. A string made of 'w' or 'a / +' characters.
*/
window.fs.write = function(path, content, mode) {
var f = fs.open(path, mode);
f.write(content);
f.close();
};

View File

@ -70,25 +70,53 @@ public:
FileSystem(QObject *parent = 0);
public slots:
bool exists(const QString &path) const;
bool isDirectory(const QString &path) const;
bool isFile(const QString &path) const;
// Attributes
// - int size(const QString &path) const; //< TODO - in bytes, or throw excep if doesn't exists
// - QDateTime lastModified(const QString &path) const; //< TODO - returns the time that a file was last modified as a Date object.
// Files / Directories
// - copy()
// - move()
// - touch(path, date)
// - rename()
// Directory
// - copyTree(source, target) //< copies files from a source path to a target path,
// copying the files of the source tree to the corresponding locations
// relative to the target, copying but not traversing into
// symbolic links to directories.
bool makeDirectory(const QString &path) const;
bool makeTree(const QString &path) const;
bool remove(const QString &path) const;
bool removeDirectory(const QString &path) const;
bool removeTree(const QString &path) const;
// Files
// 'open(path, mode)' implemented in "bootstrap.js" JavaScript shim, using '_open(path, mode)'
QObject *_open(const QString &path, const QString &mode) const;
// 'read(path)' implemented in "bootstrap.js" JavaScript shim
// 'write(path, mode)' implemented in the "bootstrap.js" JavaScript shim
bool remove(const QString &path) const;
// Listing
QStringList list(const QString &path) const;
// Paths
QString separator() const;
QString workingDirectory() const;
bool changeWorkingDirectory(const QString &path) const;
// - absolute(relative_path)
QString separator() const;
QObject *_open(const QString &path, const QString &mode) const;
// Tests
bool exists(const QString &path) const;
bool isDirectory(const QString &path) const;
bool isFile(const QString &path) const;
// - isAbsolute()
// - isExecutable()
// - isLink()
// - isMount()
// - isReadable()
// - isWritable()
};
#endif // FILESYSTEM_H