Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
namespace Suche
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
cmbLaufwerk.Items.AddRange(Environment.GetLogicalDrives());
}
private void cmdSuchen_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
string path = cmbLaufwerk.Text;
string searchPattern = "*" + txtSuchbegriff.Text + "*";
System.Threading.Thread t = new System.Threading.Thread(delegate() { Search(path, searchPattern); });
t.Start();
}
private void Search(string path, string searchPattern)
{
try
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles(searchPattern);
DirectoryInfo[] subDirectories = di.GetDirectories();
foreach (FileInfo file in files)
{
if ((file.Extension == ".doc") || (file.Extension == "docx") && (cbWord.Checked == true))
{
AddFile(file.Name);
}
if ((file.Extension == ".xls") && (cbExcel.Checked == true))
{
AddFile(file.Name);
}
if ((file.Extension == ".ppt") && (cbPowerPoint.Checked == true))
{
AddFile(file.Name);
}
if ((file.Extension == ".pdf") && (cbPDF.Checked == true))
{
AddFile(file.Name);
}
}
foreach (DirectoryInfo subDir in subDirectories)
{
Search(subDir.FullName, searchPattern);
}
}
catch (UnauthorizedAccessException) { }
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void AddFile(string fileName)
{
if (this.listView1.InvokeRequired)
{
this.listView1.BeginInvoke(new MethodInvoker(delegate() { AddFile(fileName); }));
}
else
{
this.listView1.Items.Add(fileName);
}
}
private void cmdStop_Click(object sender, EventArgs e)
{
}
private void dateiToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void überToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 NeuesFenster = new Form2();
NeuesFenster.ShowDialog();
}
private void öffnenToolStripMenuItem1_Click(object sender, EventArgs e)
{
ListView.SelectedListViewItemCollection co = listView1.SelectedItems;
if (co.Count > 0)
{
string strFile = co[0].SubItems[0].Text; // Datei
string strPath = co[0].SubItems[1].Text; // Ort
string strFilePath = Path.Combine(strPath, strFile);
Process.Start("WINWORD.exe", "\"" +strFilePath + "\"");
}
}
}
}
Abort() zu verwenden ist eigentlich nicht die feine englische.1) Die Suche stoppen können. (Habe einen "Stop"-Button gesetzt.) Ich wollte erst den "Suspend()-Befehl verwenden, aber das wird grün unterstrichen und es gibt den Hinweis, dass der Befehl wohl veraltet ist. Daher dürfte Abort() der von mir gesuchte Befehl sein.
Dann änder die AddFile Methode einfach so ab das sie 2 Parameter anstatt nur einen akzeptiert und übergib den Pfad als zweiten Parameter.2) Ich muss noch den Ort anzeigen können, wo die Datei liegt. Nach der alten Methode ging das bereits, mir der neuen nicht mehr
Wieso steht dir die Extension nicht mehr zur Verfügung. Du übergibst der AddFile Methode doch File.Name welches sowohl den Dateinamen als auch die Extension enthält.Wenn ich eine gefundene Datei öffnen will muss ich unterscheiden können, welches Programm geöffnet werden soll. Das wollte ich mittels "file.Extension" machen, aber das "Extension" steht mir an der benötigten Stelle nicht mehr zur Verfügung.
Das Problem mit Fortschrittsbalken ist das man immer erst berechnen muss was 100% des Fortschrittsbalkens entspricht.4-Optional) Ein Fortschrittsbalken mit dem man sieht, wie weit die Suche fortgeschritten ist. Der Balken ist drin und ich hatte es (nach dem ganz alten System) sogar geschafft, dass er sich ein bisschen füllt. Allerdings war die Suche fertig (Erkennbar daran, dass das Tool wieder freigegeben war), aber der Balken nur etwa 20% gefüllt. So ganz kann es also nicht gestimmt haben, was ich da gemacht hatte. (War irgendwas mit "progressBar1.Value += 1;"
private void öffnenToolStripMenuItem1_Click(object sender, EventArgs e)
{
ListView.SelectedListViewItemCollection co = listView1.SelectedItems;
if (co.Count > 0)
{
string strFile = co[0].SubItems[0].Text; // Datei
string strPath = co[0].SubItems[1].Text; // Ort
string strFilePath = Path.Combine(strPath, strFile);
if (strFile == "*.doc")
Process.Start("WINWORD.exe", "\"" + strFilePath + "\"");
else
MessageBox.Show("Bla");
}
}
private void öffnenToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count == 1)
{
ListViewItem item = this.listView1.SelectedItems[0];
if (item.SubItems.Count >= 2)
{
string fullPath = item.SubItems[1].Text + Path.DirectorySeparatorChar + item.SubItems[0].Text;
FileInfo fi = new FileInfo(fullPath);
System.Diagnostics.Process.Start(fi.FullName);
}
}
}
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles(searchPattern);
DirectoryInfo[] subDirectories = di.GetDirectories();
public List<DirectoryInfo> readDirectorys(string node)
{
List<DirectoryInfo> temp = new List<DirectoryInfo>();
DirectoryInfo infoDirectorys = new DirectoryInfo(node);
temp.AddRange(infoDirectorys.GetDirectories());
return temp;
}
public List<FileInfo> readFiles(string node)
{
List<FileInfo> temp = new List<FileInfo>();
DirectoryInfo infoFiles = new DirectoryInfo(node);
try
{
temp.AddRange(infoFiles.GetFiles());
}
catch (Exception e)
{
System.Windows.MessageBox.Show(e.Message.ToString());
}
return temp;
}
Das du 23 Zeilen brauchst und ich/wir 3?!Es ähnelt sich aber was ist der große Unterschied kann mir wer das erklären
Das ist jetzt aber nicht dein ernst oder?Was die Performance angeht, ist es eben bei mir wesentlich fixer. Habe es mit Zeitausgaben getestet auf Life Systemen