Ik ben bezig met een back-up script dat alleen de gewijzigde bestanden moet kopiëren naar een netwerk schijf.
Om nou te kijken of een bestand gewijzigd is, kijk ik naar de File.GetLastWriteTimeUtc. Als dit verschilt tussen de bestanden lokaal en remote, dan kopieer ik het bestand.
Na het kopiëren zet ik dan in het remote bestand File.SetLastWriteTimeUtc. Hier krijg ik geen fouten of zo op.
Maar als ik vervolgens mijn script nog een keer draai, worden sommige binaire bestanden als gewijzigd gezien en andere juist niet
Tekst bestanden gaan overigens wel goed.
Hiermee kijk ik of de tijd verschillend is:
Het kopieer stuk:
Als ik na het kopiëren in die doel map kijk, zijn de lastwritetimes wel hetzelfde. Heeft iemand enig idee waarom dit niet goed gaat?
Om nou te kijken of een bestand gewijzigd is, kijk ik naar de File.GetLastWriteTimeUtc. Als dit verschilt tussen de bestanden lokaal en remote, dan kopieer ik het bestand.
Na het kopiëren zet ik dan in het remote bestand File.SetLastWriteTimeUtc. Hier krijg ik geen fouten of zo op.
Maar als ik vervolgens mijn script nog een keer draai, worden sommige binaire bestanden als gewijzigd gezien en andere juist niet
Hiermee kijk ik of de tijd verschillend is:
C#:
1
2
3
4
| private bool SimilarDate() { return File.GetLastWriteTimeUtc(this.f1).Equals(File.GetLastWriteTimeUtc(this.f2)); } |
Het kopieer stuk:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| private void Copy() { bool success = false; try { File.Copy(this.f1, this.f2, true); success = true; } finally { if (success) { File.SetLastWriteTimeUtc(this.f2, File.GetLastWriteTimeUtc(this.f1)); File.SetCreationTime(this.f1, File.GetCreationTime(this.f1)); } } } |
Als ik na het kopiëren in die doel map kijk, zijn de lastwritetimes wel hetzelfde. Heeft iemand enig idee waarom dit niet goed gaat?