Stworzyłem aplikację, która będzie oglądała pewien folder tylko dla nowo utworzonych plików i wyświetla je w polu listy, teraz chcę to zrobić za każdym razem, gdy wykryje plik aplikacja przeczyta ją i wyświetli tekst na niej w polu listy, prawie dostałem, ponieważ czasami gdy wykryje 2 lub 3, 4, 6, 6 itd pliki czasami są ok, ale czasami również monituje błąd "Proces nie może uzyskać dostępu do pliku" C: \ Users \ PHWS13 \ Desktop \ 7.request.xml, ponieważ jest używany przez inny proces. ".Plik jest używany przez inny proces z FileSystemWatcher i Zadanie
Jak to naprawić? Oto mój kod:
private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
{
if (!listBox1.Items.Contains(e.FullPath))
{
//add path
listBox1.Items.Add(e.FullPath + "" + DateTime.Now.ToString());
//get the path
path = e.FullPath;
//start task
startTask();
}
}
private void startTask()
{
//start task
Task t = Task.Factory.StartNew(runThis);
}
private void runThis()
{
//get the path
string get_the_path = path;
XDocument doc = XDocument.Load(get_the_path);
var transac = from r in doc.Descendants("Transaction")
select new {
InvoiceNumber = r.Element("InvoiceNumber").Value,
};
listBox2.Invoke((MethodInvoker)delegate() {
foreach(var r in transac){
listBox2.Items.Add(r.ToString());
}
});
wciąż to samo, wypróbowane! :( – GrayFullBuster
hej, to jest poprawka, właśnie dodałem to "FileShare.ReadWrite" – GrayFullBuster
Nie działa Zrobiłem to samo –