aboutsummaryrefslogtreecommitdiff
path: root/common/file.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/file.cpp')
-rw-r--r--common/file.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/common/file.cpp b/common/file.cpp
index 5b465b5e01..e84e337d2f 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -494,6 +494,31 @@ bool DumpFile::open(const String &filename) {
return _handle != NULL;
}
+bool DumpFile::open(const FilesystemNode &node) {
+ assert(!_handle);
+
+ if (!node.exists()) {
+ warning("File::open: Trying to open a FilesystemNode which does not exist");
+ return false;
+ } else if (node.isDirectory()) {
+ warning("File::open: Trying to open a FilesystemNode which is a directory");
+ return false;
+ } /*else if (!node.isReadable() && mode == kFileReadMode) {
+ warning("File::open: Trying to open an unreadable FilesystemNode object for reading");
+ return false;
+ } else if (!node.isWritable() && mode == kFileWriteMode) {
+ warning("File::open: Trying to open an unwritable FilesystemNode object for writing");
+ return false;
+ }*/
+
+ _handle = fopen(node.getPath().c_str(), "rb");
+
+ if (_handle == NULL)
+ debug(2, "File %s not found", node.getName().c_str());
+
+ return _handle != NULL;
+}
+
void DumpFile::close() {
if (_handle)
fclose((FILE *)_handle);