]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/filefn.cpp
centralized the handling of border styles; added borders support for wxListBox and...
[wxWidgets.git] / src / common / filefn.cpp
index 5168a4cff508cfba6f64fd00f5d5d2e472a3a8e6..3d1fa6c33e9b76c02adae72a4711ee49c9e61a73 100644 (file)
@@ -1106,8 +1106,19 @@ wxCopyFile (const wxString& file1, const wxString& file2, bool overwrite)
 }
 
 bool
-wxRenameFile (const wxString& file1, const wxString& file2)
+wxRenameFile(const wxString& file1, const wxString& file2, bool overwrite)
 {
+    if ( !overwrite && wxFileExists(file2) )
+    {
+        wxLogSysError
+        (
+            _("Failed to rename the file '%s' to '%s' because the destination file already exists."),
+            file1.c_str(), file2.c_str()
+        );
+
+        return false;
+    }
+
 #if !defined(__WXWINCE__) && !defined(__WXPALMOS__)
     // Normal system call
   if ( wxRename (file1, file2) == 0 )
@@ -1115,7 +1126,7 @@ wxRenameFile (const wxString& file1, const wxString& file2)
 #endif
 
   // Try to copy
-  if (wxCopyFile(file1, file2)) {
+  if (wxCopyFile(file1, file2, overwrite)) {
     wxRemoveFile(file1);
     return true;
   }
@@ -1623,44 +1634,11 @@ void WXDLLEXPORT wxSplitPath(const wxChar *pszFileName,
 
 time_t WXDLLEXPORT wxFileModificationTime(const wxString& filename)
 {
-#if defined(__WXPALMOS__)
-    return 0;
-#elif defined(__WXWINCE__)
-    FILETIME ftLastWrite;
-    AutoHANDLE hFile(::CreateFile(filename, GENERIC_READ, FILE_SHARE_READ,
-                                    NULL, 0, FILE_ATTRIBUTE_NORMAL, 0));
-
-    if ( !hFile.IsOk() )
-        return 0;
-
-    if ( !::GetFileTime(hFile, NULL, NULL, &ftLastWrite) )
-        return 0;
+    wxDateTime mtime;
+    if ( !wxFileName(filename).GetTimes(NULL, &mtime, NULL) )
+        return (time_t)-1;
 
-    // sure we want to translate to local time here?
-    FILETIME ftLocal;
-    if ( !::FileTimeToLocalFileTime(&ftLastWrite, &ftLocal) )
-    {
-        wxLogLastError(_T("FileTimeToLocalFileTime"));
-    }
-
-    // FILETIME is a counted in 100-ns since 1601-01-01, convert it to
-    // number of seconds since 1970-01-01
-    ULARGE_INTEGER uli;
-    uli.LowPart = ftLocal.dwLowDateTime;
-    uli.HighPart = ftLocal.dwHighDateTime;
-
-    ULONGLONG ull = uli.QuadPart;
-    ull /= wxULL(10000000);     // number of 100ns intervals in 1s
-    ull -= wxULL(11644473600);  // 1970-01-01 - 1601-01-01 in seconds
-
-    return wx_static_cast(time_t, ull);
-#else
-    wxStructStat buf;
-    if ( wxStat( filename, &buf) != 0 )
-        return 0;
-
-    return buf.st_mtime;
-#endif
+    return mtime.GetTicks();
 }