C#: Holen Sie sich die 5 neuesten (zuletzt geändert) - Dateien aus einem Verzeichnis
Gibt es eine Möglichkeit, kann ich die Datei speichern Speicherort der letzten 5 geänderten Dateien aus einem Verzeichnis mit Array
?
Ich bin derzeit mit den folgenden codes unten, um die Letzte Datei:
DateTime lastHigh = new DateTime(1900,1,1);
string highDir;
foreach (string subdir in Directory.GetDirectories(path)){
DirectoryInfo fi1 = new DirectoryInfo(subdir);
DateTime created = fi1.LastWriteTime;
if (created > lastHigh){
highDir = subdir;
lastHigh = created;
}
}
Ich werde mit Array
senden mehrere Dateien an eine E-Mail-Adresse als Anhang.
UPDATE
Ich bin derzeit mit einen der folgenden codes, um die letzten geänderten Dateien nach 1 minute:
string myDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures),
"Test Folder");
var directory = new DirectoryInfo(myDirectory);
DateTime from_date = DateTime.Now.AddMinutes(-1);
DateTime to_date = DateTime.Now;
var files = directory.GetFiles().Where(file => file.LastWriteTime >= from_date && file.LastWriteTime <= to_date);
Ich möchte zu speichern, um die Liste der Dateinamen aus files
- Sind Sie gerade benötigen ".ToArray()" am Ende der Dateien, die definition? ie
var files = directory.GetFiles().Where(file => file.LastWriteTime >= from_date && file.LastWriteTime <= to_date).ToArray();
- Ich erhalte die Fehlermeldung "kann Nicht implizit konvertiert Typ 'string' in 'System.IO.FileInfo'"
- Sie haben, um eine
FileInfo
Objekt aus einem Pfad. Verwenden Sie den entsprechenden Konstruktornew FileInfo(path)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Allgemeine Möglichkeit, dies zu tun mit LINQ:
Ich vermute, das ist nicht ganz das, was Sie wollen, da deine code-Beispiele zu sein scheinen, arbeiten Sie an verschiedenen Aufgaben, aber in der Allgemeinen Fall, dies würde das tun, was der Titel deiner Frage Anfragen.
Es klingt wie Sie wollen ein
string
array der vollständigen filepaths, alle Dateien in ein Verzeichnis.Gegeben, Sie haben bereits Ihre
FileInfo
Durchlaufen werden, können Sie dies tun:Wenn Sie wollten, nur die Dateinamen, ersetzen
FullName
mitName
.