积极答复者
用fileSystemWatcher监控某目录Created了新文件,如何拷贝这个新创建的文件到指定目录?

问题
答案
-
你好
基本步骤就是1:创建一个FileSystemWatcher对象。注册一下他的created事件。
watcher.Created += new FileSystemEventHandler(OnChanged);
2:获取新创建文件的目录
string targetPath=“d:\\”
string sourcePath=string.Empty;
private void OnChanged(object source, FileSystemEventArgs e)
{
sourcePath=e.FullPath;}
3. 把文件从源目录复制到目标目录。
File.Copy(sourcePath,targetPath);
除此之外,像filter的属性等等也应该做一些设定。详细例子可以参考msdn。如果是多个文件的话,最好是用一个集合把路径存储起来,然后循环拷贝过去。
希望对你有帮助。
Cookie Luo[MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 zjyh16 2011年5月20日 8:57
全部回复
-
File.Copy( "FilePathNameFrom" , "FilePathNameTo");
如果你只是知道文件名字,而不太清楚扩展名的话. 可以利用文件名和可能的扩展名拼出所有的文件名,
然后再用 File.Exist("FilePathName")逐一判断这些可能的名字中那些文件真正存在.
信奎爷,无所畏惧!!- 已建议为答案 Charles Shao 2011年5月19日 1:37
-
dear
MSDN裡有詳細的資源,http://msdn.microsoft.com/zh-cn/library/system.io.filesystemwatcher%28VS.80%29.aspx
基本上就是用以下這些事件監看檔案的變化
watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.Created += new FileSystemEventHandler(OnChanged); watcher.Deleted += new FileSystemEventHandler(OnChanged); watcher.Renamed += new RenamedEventHandler(OnRenamed);
FileSystemEventArgs 就是用來通知你,有哪些檔案發生事件了
void watcher_Deleted(object sender, FileSystemEventArgs e) { MessageBox.Show(e.FullPath); }
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/ -
dear
MSDN裡有詳細的資源,http://msdn.microsoft.com/zh-cn/library/system.io.filesystemwatcher%28VS.80%29.aspx
基本上就是用以下這些事件監看檔案的變化
watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.Created += new FileSystemEventHandler(OnChanged); watcher.Deleted += new FileSystemEventHandler(OnChanged); watcher.Renamed += new RenamedEventHandler(OnRenamed);
FileSystemEventArgs 就是用來通知你,有哪些檔案發生事件了
void watcher_Deleted(object sender, FileSystemEventArgs e) { MessageBox.Show(e.FullPath); }
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
Yang -
File.Copy( "FilePathNameFrom" , "FilePathNameTo"); 这个命令就是用来拷贝文件的呀. 第一个参数是源文件地址, 第二个参数是目标地址. 跟用Dos命令一样简单了
我不太明白你还要怎样? 如果是多个文件名,你只需要 foreach(string crrFile in Files) 即可循环执行拷贝所在files文件名列表中的文件了.
信奎爷,无所畏惧!!- 已建议为答案 Charles Shao 2011年5月20日 2:57
-
你好
基本步骤就是1:创建一个FileSystemWatcher对象。注册一下他的created事件。
watcher.Created += new FileSystemEventHandler(OnChanged);
2:获取新创建文件的目录
string targetPath=“d:\\”
string sourcePath=string.Empty;
private void OnChanged(object source, FileSystemEventArgs e)
{
sourcePath=e.FullPath;}
3. 把文件从源目录复制到目标目录。
File.Copy(sourcePath,targetPath);
除此之外,像filter的属性等等也应该做一些设定。详细例子可以参考msdn。如果是多个文件的话,最好是用一个集合把路径存储起来,然后循环拷贝过去。
希望对你有帮助。
Cookie Luo[MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 zjyh16 2011年5月20日 8:57