]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dir.cpp
wxUniv compilation fix
[wxWidgets.git] / src / msw / dir.cpp
index adfa2dd7e31284b383d42e536a6033e79bb1b7e3..724625bf1ad4b7130c09b07e33ae7209882743e0 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     08.12.99
 // RCS-ID:      $Id$
 // Copyright:   (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Created:     08.12.99
 // RCS-ID:      $Id$
 // Copyright:   (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -215,6 +215,8 @@ public:
     void Rewind();
     bool Read(wxString *filename);
 
     void Rewind();
     bool Read(wxString *filename);
 
+    const wxString& GetName() const { return m_dirname; }
+
 private:
     FIND_DATA m_finddata;
 
 private:
     FIND_DATA m_finddata;
 
@@ -222,6 +224,8 @@ private:
     wxString m_filespec;
 
     int      m_flags;
     wxString m_filespec;
 
     int      m_flags;
+
+    DECLARE_NO_COPY_CLASS(wxDirData)
 };
 
 // ============================================================================
 };
 
 // ============================================================================
@@ -403,6 +407,28 @@ bool wxDir::IsOpened() const
     return m_data != NULL;
 }
 
     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;
 wxDir::~wxDir()
 {
     delete M_DIR;
@@ -434,3 +460,36 @@ bool wxDir::GetNext(wxString *filename) const
 
     return M_DIR->Read(filename);
 }
 
     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__
+