2017-02-22 4 views
1

I umbenannt habe eine Datei in einem Ordner, aber wenn ich versuche, die Datei an einem anderen Ort zu bewegen Ich erhalte eine Fehlermeldung -Wie Daten aktualisieren

Datei nicht gefunden.

Der Dateipfad hält immer noch den alten Dateinamen heißt c:\user\appFolder\OldFileName.txt

Aber innerhalb des Ordners der Dateiname auf dem NewFileName.txt

geändert wurde Wie aktualisieren Sie die Daten?

-Code unten

foreach (string filename in fileEntries) 
{ 
    RenameFile(filename); 

    string fileName = Path.GetFileName(filename); 
    string destinationPath = TransfersPath; 

    string sourceFile = System.IO.Path.Combine(sourcePath); 
    string destFile = System.IO.Path.Combine(destinationPath, fileName); 
    System.IO.File.Move(sourceFile, destFile); 
} 
+0

Ihr Code macht nicht viel Sinn. Was macht 'RenameFile'? Warum "fileEntries" durchlaufen und nur 'fileName' als Ziel für den gleichen' sourcePath' für jeden Eintrag verwenden? Scheint wie logische Fehler ... – Igor

+0

Nun natürlich 'fileName' ändert sich nicht in den neuen Namen. Es gibt niemanden außer dir, der es ändern kann, und du hast es nicht getan. –

+0

Dateisystemdaten müssen nicht aktualisiert werden. Wenn Sie irgendwelche Dateioperationen aufrufen, wird das Dateisystem so aussehen, wie es im Windows Explorer aussieht. Das Problem ist wahrscheinlich mit Ihren Eingabezeichenfolgen zu File.Move() – spectacularbob

Antwort

2

Es scheint, dass Aufruf der Methode nicht die neuen Dateinamen nicht kennt.

So müssen Sie neue Dateinamen

string newFilename = RenameFile(filename); 

und verwenden newfilename im Rest des Codes von RenameFile Methode zurückgeben statt Dateinamen an.