You*_*mos 1 c# directory file-exists visual-c#-express-2010
我正在创建一个文件,它的Visual C# application
部分功能是在.gz
文件出现在目录中时提取文件。.gz
一旦执行命令行参数,该文件就会出现在指定的目录中。
不幸的是,我收到一条错误消息,说“找不到此文件”,这是由于它读取行以.gz
过快地提取文件的原因。
换句话说,它试图.gz
在命令行参数执行之前执行文件并将文件实际放入目录中。
我想找到一种方法让我的程序在继续读取下一行之前等待文件出现在目录中。
以下是我的代码,任何帮助将不胜感激!谢谢!
else if (ddlDateType.Text == "Monthly" || ddlDateType.Text == "")
{
//Check if Monthly date entered is valid
if (DateTime.TryParseExact(txtDate.Text, MonthlyFormat, null,
System.Globalization.DateTimeStyles.None, out Test) != true)
{
MessageBox.Show("Enter a valid date.\nFormat: yyyyMM");
}
else
{
//Method that executes an arugment into the command prompt
ExecuteCommand();
//Method that extracts the file after it has already appeared in the directory
ExtractFile();
/*
Goal is to wait for the file to appear in the directory before it executes
the ExtractFile() method.
*/
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 FileSystemWatcher。https://msdn.microsoft.com/it-it/library/system.io.filesystemwatcher(v=vs.110).aspx
在此示例中,每次将文件添加到受监控文件夹时都会调用回调 OnChanged。
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
public static void RunWathcer()
{
// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "PATH TO WATCH GOES HERE!!";
/* Watch for changes in LastAccess and LastWrite times, and
the renaming of files or directories. */
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
}
// Define the event handlers.
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2442 次 |
最近记录: |