]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dir.cpp
compilation fix for WXWIN_COMPATIBILITY_2 == 1
[wxWidgets.git] / src / msw / dir.cpp
index 5fe20263aafae57965ea216e6f306a9d08aece77..273734724d0da510a6fedf50b9e637b46f0467c7 100644 (file)
     #pragma hdrstop
 #endif
 
+// For _A_SUBDIR, etc.
+#if defined(__BORLANDC__) && defined(__WIN16__)
+#include <dos.h>
+#endif
+
 #ifndef WX_PRECOMP
     #include "wx/intl.h"
     #include "wx/log.h"
@@ -210,6 +215,8 @@ public:
     void Rewind();
     bool Read(wxString *filename);
 
+    const wxString& GetName() const { return m_dirname; }
+
 private:
     FIND_DATA m_finddata;
 
@@ -217,6 +224,8 @@ private:
     wxString m_filespec;
 
     int      m_flags;
+
+    DECLARE_NO_COPY_CLASS(wxDirData)
 };
 
 // ============================================================================
@@ -398,6 +407,28 @@ bool wxDir::IsOpened() const
     return m_data != NULL;
 }
 
+wxString wxDir::GetName() const
+{
+    wxString name;
+    if ( m_data )
+    {
+        name = M_DIR->GetName();
+        if ( !name.empty() )
+        {
+            // bring to canonical Windows form
+            name.Replace(_T("/"), _T("\\"));
+
+            if ( name.Last() == _T('\\') )
+            {
+                // chop off the last (back)slash
+                name.Truncate(name.length() - 1);
+            }
+        }
+    }
+
+    return name;
+}
+
 wxDir::~wxDir()
 {
     delete M_DIR;
@@ -429,3 +460,36 @@ bool wxDir::GetNext(wxString *filename) const
 
     return M_DIR->Read(filename);
 }
+
+// ----------------------------------------------------------------------------
+// wxGetDirectoryTimes: used by wxFileName::GetTimes()
+// ----------------------------------------------------------------------------
+
+#ifdef __WIN32__
+
+extern bool
+wxGetDirectoryTimes(const wxString& dirname,
+                    FILETIME *ftAccess, FILETIME *ftCreate, FILETIME *ftMod)
+{
+    // FindFirst() is going to fail
+    wxASSERT_MSG( !dirname.empty() && dirname.Last() != _T('\\'),
+                  _T("incorrect directory name format in wxGetDirectoryTimes") );
+
+    FIND_STRUCT fs;
+    FIND_DATA fd = FindFirst(dirname, &fs);
+    if ( !IsFindDataOk(fd) )
+    {
+        return FALSE;
+    }
+
+    *ftAccess = fs.ftLastAccessTime;
+    *ftCreate = fs.ftCreationTime;
+    *ftMod = fs.ftLastWriteTime;
+
+    FindClose(fd);
+
+    return TRUE;
+}
+
+#endif // __WIN32__
+