Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: При копировании файла разные даты его изменения
     
    
Добавлено: 01.12.11 08:50
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 ---Fix--- | ICQ: 348680795 
      
       
  
У меня есть функция, определяющая разницу во времени, между скопированными файлами и возвращающая эту разницу в строковом выражении.
 
    
[SOURCE]
    Public Function GetDifference(ByRef pCompareFile As IO.FileInfo) As String
        Dim ts As TimeSpan
        Dim ResStr As String = ""
        Dim Pri As String = ""
        Dim pFirstDate As Date = FileInfo.LastWriteTime 'FileInfo = IO.FileInfo
        Dim pSecondDate As Date = CompareFile.LastWriteTime 'CompareFile = IO.FileInfo
        If FileInfo.Name <> CompareFile.Name Then
            IsNewer = True 'IsNewer = Файл новее, или одинаков
            Return " - Нет такого же"
        End If
        If pFirstDate > pSecondDate Then
            ts = pFirstDate.Subtract(pSecondDate)
            Pri = "Новее на "
            IsNewer = True
        ElseIf pSecondDate > pFirstDate Then
            ts = pSecondDate.Subtract(pFirstDate)
            Pri = "Старее на "
        Else
            ResStr = "Не изменен"
            IsNewer = True
            Return ResStr
        End If
        ResStr = " " & ts.Seconds & " сек." & ResStr
        If ts.TotalSeconds > 60 Then
            ResStr = " " & ts.Minutes & " мин." & ResStr
            If ts.TotalMinutes > 60 Then
                ResStr = " " & ts.Hours & " ч." & ResStr
                If ts.TotalHours > 24 Then
                    ResStr = " " & ts.Days & " дн." & ResStr
                End If
            End If
        End If
        Return Pri & ResStr
    End Function
[/SOURCE]
методом [SOURCE]FileInfo.CopyTo[/SOURCE] копирую файл, и и теперь я сравниваю даты изменения файлов.
Они почему-то отличаются. Причем разница во времени примерно равная времени копирования файла. Из-за чего так? Как это можно исправить?
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 7
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 ---Fix---
![]()
![]()
![]()
![]()
ICQ: 348680795 
Вопросов: 12
Ответов: 33
      
 Профиль |  | #1
       
Добавлено:  01.12.11 13:25
       
    
       
  
Пробовал даже вручную установить дату скопированному файлу, но нифига 0_о. Эти даты различаются, когда как, на 1 сек. или несколько милисекунд.
 
    
Однако я заметил, что даты различаются, только когда копируешь файл на флешку или с неё, а копирование между жесткими дисками не вызывает изменений даты.
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Дмитрий Юпатов
![]()
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 457
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  01.12.11 14:56
       
    
       
  
 
    
Однако я заметил, что даты различаются, только когда копируешь файл на флешку или с неё, а копирование между жесткими дисками не вызывает изменений даты 
Между двумя хардами или разделами на одном?
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 ---Fix---
![]()
![]()
![]()
![]()
ICQ: 348680795 
Вопросов: 12
Ответов: 33
      
 Профиль |  | #3
       
Добавлено:  01.12.11 16:34
       
    
       
  
Между двумя физическими, разными хардами
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 ---Fix---
![]()
![]()
![]()
![]()
ICQ: 348680795 
Вопросов: 12
Ответов: 33
      
 Профиль |  | #4
       
Добавлено:  01.12.11 16:45
       
    
       
  
Вот код копирования выделенных в листбоксе фалов в другой каталог.
 
    
Похоже на то что время изменения скопированного файла будет тем больше, чем больше файлов будет копироваться, и последний будет имет наибольший разрыв в датах. Но почему?
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #5
       
Добавлено:  01.12.11 21:23
       
    
       
  
потому что ты не учитываешь время на выполнение самой операции копирования...
 
    
флешка тормозная.. скорость записи/чтения (так называемые дисковые операции) низкие, отсюда и разница во времени..
копируешь 1 файл - маленькая разница.. копируешь 100 файлов - разница большая.. У хардов скорость чтения/записи намного выше поэтому разница не так заметна
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа:
 ---Fix---
![]()
![]()
![]()
![]()
ICQ: 348680795 
Вопросов: 12
Ответов: 33
      
 Профиль |  | #6
       
Добавлено:  02.12.11 10:18
       
    
       
  
ну если бы время изменения было текущей датой, я бы еще понял. А у меня получается: сегодня 2.12.2011, я копирую файл с датой например: 23.11.2011 17:45 43сек. а скопированный получается с датой изменения 23.11.2011 17:45 44сек. Нигде не могу найти, почему так получается. Причем я явно в коде указываю дату изменения уже скопированному файлу равной файлу источнику, хотя и без этого указания эта дата все равно будет тем больше, чем больше файлов копироваться.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа:
 ---Fix---
![]()
![]()
![]()
![]()
ICQ: 348680795 
Вопросов: 12
Ответов: 33
      
 Профиль |  | #7
       
Добавлено:  30.12.11 09:27
       
    
       
  
Немного подумав я просто скопировал тотал командером этот файл на флешку и сравнил даты - различаются  
    
. Так что решить этот вопрос наверное нельзя программно.