Will FileSystemWatcher Process Multiple Files At Once?
Jun 1, 2009
I have a Windows service that is watching a folder for files that will be placed there.(Created in Visual Studio 2005.)The files each represent a transaction, and the transactions have to be kept in order.As I process each file (transaction), I want to forward it to someone else.(The someone else wants them kept in order.)It looks like I can't paste multiple files into a folder simultaneously and still be sure that they will be processed in the order of the original date and time they were created.Nor can I be sure that they would be read in name order.(FileSystemWatcher would grab them in any old order it chose.)So I think I will have to move the files into the folder one at a time, in the proper sequence.But I'm wondering if I could get into a "racing" situation.
When FileSystemWatcher detects a file in a folder, it creates a new thread for your event handler to operate on.If it detects a second file while still processing the first file, would it then create yet another thread?If that is the case, then if File1.xml takes longer to process than File2.xml, it seems like File2.xml might finish first, resulting in my transactions getting out of order.In my own experiments,I have not seen evidence that multiple files are really processed simultaneously.I write messages to a log file as I process each transaction, and I never see messages from File1.xml's processing intermingled with File2.xml's messages.This seems to be true even when I paste both files into the folder simultaneously.it only keeps one event-handling thread going at a time, and queues up the events as they come, processing them on that single thread.Otherwise, I'll have to do something to ensure they are kept in order.
View 9 Replies
ADVERTISEMENT
Sep 13, 2010
I am in the process of writing a windows service that will be replacing a vbscript that runs via a scheduled task currently. It currently runs on 350 kiosk machines in 350 different locations.Here is what the vbscript currently does:
1. The machine receives a ZIP file in the RECEIVE directory. Configuration_09122010_1234.zip. This file contains software configuration files that need to be copied to specified folders on the machine and to another machine on the local LAN where this kiosk is located.
2. The zip file is extracted to a folder with the same name as the zip file.Inside the zip file is an instruction file (.txt) and files that are referenced in the instruction file.
3. Opens the instruction file and performs the instructions in the file. Example: (this would copy pricingfile1.dbf to \mymachinecapplication1pricing, and then execute softwaresoftwarepatch1.exe which is located in \mymachinecpatches)
pricingfile1.dbf, \mymachinecapplication1pricing, copy
softwarepatch1.exe, \mymachinecpatches, run
4. Once all of the actions in the instructions file are completed, the folder where the zip file was extracted is deleted and the zip file is renamed to configuration_09122010_1234.zip.applied to show that it was processed by the script. Also, because the script is a scheduled task, this ensures that the file is not applied more than 1 time.
So I have started writing the service using the FileSystemWatcher. Basically I look in the receive folder for any file that looks like Configuration_MMddyyyy_*.zip and unzip it to a folder of the same name.
1. I have been doing some reading about the FileSystemWatcher Created event.I read an article about how the Created event fires as soon as the first byte is written but doesn't necessarily mean that the complete file has arrived at the machine. A post I read involved a .csv file and it mentioned that you try to open the file and catch any errors - if you cannot open the file, it hasn't arrived yet. This makes sense to me but I don't know what the equivalent would be to a zip file. It's not the same as opening a txt or csv file.
2. There are times that we send more than 1 configuration file in the same day, or even, at the same time. Above I mentioned the name was Configuration_<date>_1234.zip. The 1234 is a sequence number, always incremented. The idea is for 1234 to be applied before 1235 and 1236. So if I had 2 files sent *at the same time* and I want them to apply in order, how would I do this? I thought about when I am applying 1 file to stop looking for changes until after the apply process is completed, but then I *think* I would miss any file that arrived while I EnableRaisingEvents = false?
View 1 Replies
Apr 16, 2009
made a simple application which converts a PDF to csv.making some changes to have the app read multiple PDF's and convert into one CSV.
Heres my code.
Imports System.IO.StreamWriter
Imports System.IO
[code].....
View 2 Replies
Jul 7, 2011
is it possible to get the name of the process that caused the change in the filesystem?i want to do this programmatically [ie, i can't use any external 3rd party tools like handle]
View 1 Replies
Aug 10, 2009
I have a filesystemwatcher that watches a certain folder.. Now i use system.thread.sleep to be sure that the file is completely copied to the folder that i watch..But this is not a good way!
I know there is a way to check if the file is open or used by another process, but i dont know the code..
[Code]....
View 3 Replies
Jan 16, 2009
I have the following code:
Imports System.IO
Public Class Blah
Public Sub New()
InitializeComponent()
[code]....
When I run it and save changes to a file on my C drive, the code works great, except it executes the watcher_Changed() method four times. The changeType is "4" every time.
View 14 Replies
Apr 13, 2012
I have a filesystemwatcher waiting for .jpg files to arrive from the camera.he file system watcher invokes a delegate (it works but is that the proper way to handle it?) sub that does a couple of things:1. Adds the just arrived file name to a table2. Attempts to display the image in a picturebox on the form. When it displays the image it imprints some information on the image that the user has entered on the screen. I use a file stream to retrieve the image.The problem is, I'm getting a file in use orror on the "Img = ystem.Drawing.Image.FromStream(fs)"statement. Not all the time. Sometimes I can add three or four files to the folder in rapid succession with no issue. But then out of the blue the error will occur. Sometimes it's there to stay but other times it will go away and allow me to add morefiles.
View 2 Replies
Aug 21, 2011
I am trying to write an app that monitora a folder, and subfolders, amd makes a copy of any file that gets saved there, (or renamed, moved etc). Filesystemwatcher does a pretty good job of it, untili someone saves an Excel spreadsheet. Excel does about 9 different file system operations just to save the file. What happens is I get events for tempo files being saved, then renamed, or deleted in a very quick succession. All I want is the final spreadsheet, but these changes happen so quickly is causes my app to crash. Anybiody have any thoughts on how to hendle this?
View 3 Replies
May 29, 2011
ive just finished writing a file in VB 2010 and im using filesystemwatcher but ive found a problem whereas the filesystemwatcher fires the target twice everytime there is a change to the file.
ive looked around and found it to be a problem but cant seem to find a cure
View 1 Replies
Jun 11, 2011
How do you set the FileSystemWatcher.Filter to check only two files.
Here's my code that doesn't even work.
watcher.Filter = "*.txt|*.ini"
View 5 Replies
Apr 15, 2011
Can i monitor changes to the registry like monitoring the files and folders using filesystemwatcher?
View 10 Replies
Jun 18, 2012
I have a website that has highly granulised access and hence requires many web.config files. The problem is I would like to trim the menu so that only certain users will have access to certain folders. I have enabled trimming and setup roles in the sitemap, however when I access the page the menu is not show, as I am authorized to view the default page which is not in a subfolder. When I type the url of a page in sub folder's I have access.
How should I handle this:
A site map for each web.config file - don't know how this will work Removing the sub web.config file to only use a single one
View 3 Replies
Dec 10, 2009
I know this is out there and probably illogical but I was wondering if it was possible to take multiple picture files and compact them into one file.... and then retrieve them from the program later? Way to combine any amount of image files into one file
Module Module1
Sub combine()
Dim img1 As New Bitmap("i1.jpg")
[CODE]...
View 6 Replies
Mar 30, 2010
I'm developing an application to help law enforcement retrieve and analyze logs and other files left by the use of Pidgin (a multi-protocol messenger client). Right now I'm nearly done, but I want to add the ability to search chat logs for user-defined words or phrases and I don't even know where to begin.
Chat logs are stored as html documents in a folder/sub-folder/sub-folder/sub-folder fashion, where each sub-folder can have dozens of sub-folders inside of it, and the final sub-folder can have dozens if not hundreds of chat logs. If anybody could point me in the right direction, I'd be very grateful.
(Also, this is the first program I've written since about 2005, and I'm essentially teaching myself VB as I go. If you'd like to see what I've cobbled together so far, you can find the program here.)
View 1 Replies
Apr 3, 2009
I understand running the command shell as a process, How would i run multiple arguments in that one process? For example, here's a process to do a netstat.[code]How would I do that with the following commands? I'd like to click one button and have these all run one after the other.[code]
View 7 Replies
Apr 2, 2009
I am writing an application which needs to allow the user to select and open document files as a new process, edit them, then when they've finished backup the changed files automatically. For example, start a .doc file within Word or a .xls file with Excel What I wanted to do was use process.start to run the application and store the ProcessID returned in an array so that when the process finished, I could check all the files that were using that application for changes.
[Code]...
View 3 Replies
Mar 18, 2009
I have a backup class it copys every thing but the unmovable files witch in return when i test the dive that i just backed up all files to will not boot up missing win system32 config files??how would i add permission to my code??? or how do i over ride cant copy file because a nother process is useing it?
View 3 Replies
Aug 6, 2009
so my GF have a virus that sends messages to other contacts from her skype so i was wondering if i cant track it by checking if some process is using the skype communication protocol or the exe itself. while i mess with it i notice that the skype message pop up with the question if i allow my program to access it when i was using the communication protocol.
View 2 Replies
Dec 29, 2011
I am writing a manager for an app that we use at the office. I have successfully written launching, monitoring, and managing number of instances using the process class.Each file is the data output for one study. Each of the 2-8 instances of the application will run 1000 studies overnight. The fault would be that the file stops growing. I cannot just check for that, because it also stops growing when it done with one study. I need to be able to determine which files are being written by which threads (or vis-versa where i know which files are 'running' and need to see who owns them)?
View 13 Replies
Sep 14, 2010
I have a program that processes files in a special subdirectory and the program processes the files based upon the "Type", i.e., "Text Document". If an application, such as a text editor, installed onto the system, the "Type" may change to suit that application. For example, I recently had one change the type from "TXT File" to "UltraEdit Document (.txt}". Yes, the squirrely brace was on the end, don't know why. Well, after this app was installed, my program found no files of "TXT File" type to process even though the subdirectory was full of filename.txt files.
So, how can I get the code to look at the file extension, not the Type? A few lines of the code are shown:
Private fsFile As Scripting.File
[code].....
View 2 Replies
Mar 16, 2012
I am importing filenames into a DGV:
If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim myFileDir = New System.IO.DirectoryInfo(FolderBrowserDialog1.SelectedPath)
For Each myFiles As System.IO.FileInf
[code]....
View 5 Replies
Oct 28, 2011
When I google how to read and process XML files in VB.NET there are heaps of different ways - what way is right? which way is quickest?
View 2 Replies
Jan 19, 2010
I have an encrypted SQL Server stored proc that I run with (or the vb .net equivalent code of):[code]this returns 2 datasets and the output parameters for the results, the datasets are made up of various table joins etc, one holds the header record and one the detail records.I need to get the 2 datasets into a structure in VB .net (e.g. linq, sqldatareader, typed datasets) so that I can code with them, I don't know what tables any of this comes from and there are alot of them Whooopeee...I came close using Linq to SQL and IMultipleResults but got frustrated when I had to recode it every time I made a change to the designer file.
View 2 Replies
Oct 25, 2009
I need to open several pdf, word and excel files from process.start like command, but only open one file at time.
View 2 Replies
Aug 18, 2011
I'm trying to copy multiple excel source files into one excel file. My current code is working only for 3 source files..If more than 3 files are there, it doesn't copy the data but creates blank work sheet in the output excel file. Lets say I have a source folder with 5 excel files. Each workbook contains one worksheet with data. It copies upto 3 worksheets along with data into output excel file.
Lets say excel1 contains A as work sheet, excel2 contains B as work sheet ,excel3 contains C as work sheet ,excel4 contains D as work sheet ,excel5 contains E as work sheet .Now my output excel file should look like..OutputExcel with A, B, C, D, E along with respective data.But my current code is giving output as A,B,C worksheets along with respective data but its creating blank sheet1,sheet2 in place of D & E.
SSIS Script Task Vb.Net Code:
Public
Sub Main()
Dim filePath
As
String =
[code].....
View 1 Replies
Jun 21, 2010
I was wondering about something: is there a way to communicate with another program/process on the PC without using files? What would this look like? Is there a search term I can use to get more info? This is not a vb.net question per se, but a general software question.
View 3 Replies
Nov 24, 2011
I have a process of copying files from one path to other in my application. The problem that I am facing is, when the copy process starts. my application will be busy for that amount of time and cant do any work. So I want to make this copy process to be in background as a separate process without making the application to hang.
(Visual Studio 2010 Ultimate)
View 2 Replies
Apr 25, 2009
I made an application that uses text files from a folder and i included that folder's path in the code, How can I make the VB take these files with the .exe file and make it work probably?
View 4 Replies
Jan 26, 2009
I have created an aplication that opens pdf files for different GPRS settings of various phones. These pdf files are stored on a remote computer(central machine). I am having problems using the process.start . This is the code that i am using for my search button:
Dim process as new process
process.start(("\\192.168.2.78\C:\Documents and Settings\phamanda\My Documents\Gprs\Benq\") & ComboBox5.Text & ".pdf")
Does process.start recognise IP adresses
View 1 Replies
Mar 29, 2009
I'm attempting to send an email to multiple recipients, via the System.Diagnostics.Process.Start() command. The string I'm using looks like this...
System.Diagnostics.Process.Start("mailto:Test1 <test@nowhere.atall>; Test2 <test2@nowhere.atall>;")
The first email shows up correctly in my email program (Windows Mail in this case), but the second email does not show up. If I get rid of the brackets that separate the email from the recipient name (getting rid of the recipient name from the string), then both email addresses will load without problems. It's only when the brackets are included that the problem occurs. I've tracked the specific problem spot to the closing bracket on the first email name. For some reason, everything that follows the closing bracket is ignored.
View 3 Replies