风场数据转换批处理程序笔记
功能:
- 生成配置文件Init.dat;
- 将生成在UV文件夹下的所有文件拷贝到另一个新建的文件夹中
- 调用mcf.exe
生成Init.dat文件:
public void generateText(string date)
{
string poem = "89.5403,32.5997\n";
poem += @"D:\project\MCF\Wind\"+date+"\\"+"\n";
poem += date+"000.txt\n";
poem+=@"D:\project\MCF\MCF\input\";
StreamWriter generateTxt = new StreamWriter(@"D:\project\MCF\MCF\Init.dat", false);
generateTxt.Write(poem);
generateTxt.Close();
}
{
string poem = "89.5403,32.5997\n";
poem += @"D:\project\MCF\Wind\"+date+"\\"+"\n";
poem += date+"000.txt\n";
poem+=@"D:\project\MCF\MCF\input\";
StreamWriter generateTxt = new StreamWriter(@"D:\project\MCF\MCF\Init.dat", false);
generateTxt.Write(poem);
generateTxt.Close();
}
调用mcf.exe:
System.Diagnostics.ProcessStartInfo info = new ProcessStartInfo();
info.FileName = textBox1.Text;
info.WorkingDirectory = "D:\\project\\MCF\\MCF\\";
info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
string date = dirinfo.Name;
string dir = dirinfo.FullName;
generateText(date);
System.Diagnostics.Process pro;
try
{
pro = System.Diagnostics.Process.Start(info);
}
catch (Exception)
{
throw;
}
info.FileName = textBox1.Text;
info.WorkingDirectory = "D:\\project\\MCF\\MCF\\";
info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
string date = dirinfo.Name;
string dir = dirinfo.FullName;
generateText(date);
System.Diagnostics.Process pro;
try
{
pro = System.Diagnostics.Process.Start(info);
}
catch (Exception)
{
throw;
}
获取文件的绝对路径:
OpenFileDialog open = new OpenFileDialog();
open.InitialDirectory = "D:\\project\\MCF\\MCF";
open.Filter="All File(*.*)|*.*|exe File(*.exe)|*.exe";
if(open.ShowDialog()==DialogResult.OK)
textBox1.Text=open.FileName;
open.InitialDirectory = "D:\\project\\MCF\\MCF";
open.Filter="All File(*.*)|*.*|exe File(*.exe)|*.exe";
if(open.ShowDialog()==DialogResult.OK)
textBox1.Text=open.FileName;
获取文件夹的绝对路径:
FolderBrowserDialog folder = new FolderBrowserDialog();
if (folder.ShowDialog() == DialogResult.OK)
textBox2.Text = folder.SelectedPath;
if (folder.ShowDialog() == DialogResult.OK)
textBox2.Text = folder.SelectedPath;
递归拷贝一个文件夹的所有文件:
/// <summary>
/// 递归拷贝一个文件夹的所有文件
/// </summary>
/// <param name="olddirectory"></param>
/// <param name="newdirectory"></param>
/// <param name="dir"></param>
protected void CopyAll(string olddirectory, string newdirectory, string dir)
{
if (!Directory.Exists(newdirectory))
{
Directory.CreateDirectory(newdirectory);
}
DirectoryInfo dis = new DirectoryInfo(dir.Length > 0 ? (dir) : (olddirectory));
FileInfo[] files = dis.GetFiles();
foreach (FileInfo fi in files)
{
try
{
//拷贝文件
File.Copy(fi.FullName, string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));
}
catch (Exception ex)
{
try
{
File.Delete(string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));
File.Copy(fi.FullName, string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));
}
catch
{
}
}
}
if (dis.GetDirectories().Length > 0)
{
for (int i = 0; i < dis.GetDirectories().Length; i++)
{
//创建目录
string tempNewPath = string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), dis.GetDirectories()[i].Name);
if (!Directory.Exists(tempNewPath))
Directory.CreateDirectory(tempNewPath);
CopyAll(olddirectory, newdirectory, dis.GetDirectories()[i].FullName);
}
}
}
/// 递归拷贝一个文件夹的所有文件
/// </summary>
/// <param name="olddirectory"></param>
/// <param name="newdirectory"></param>
/// <param name="dir"></param>
protected void CopyAll(string olddirectory, string newdirectory, string dir)
{
if (!Directory.Exists(newdirectory))
{
Directory.CreateDirectory(newdirectory);
}
DirectoryInfo dis = new DirectoryInfo(dir.Length > 0 ? (dir) : (olddirectory));
FileInfo[] files = dis.GetFiles();
foreach (FileInfo fi in files)
{
try
{
//拷贝文件
File.Copy(fi.FullName, string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));
}
catch (Exception ex)
{
try
{
File.Delete(string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));
File.Copy(fi.FullName, string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));
}
catch
{
}
}
}
if (dis.GetDirectories().Length > 0)
{
for (int i = 0; i < dis.GetDirectories().Length; i++)
{
//创建目录
string tempNewPath = string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), dis.GetDirectories()[i].Name);
if (!Directory.Exists(tempNewPath))
Directory.CreateDirectory(tempNewPath);
CopyAll(olddirectory, newdirectory, dis.GetDirectories()[i].FullName);
}
}
}
删除文件夹下的所有文档:
/// <summary>
/// 删除文件夹下的所有文档
/// </summary>
/// <param name="path"></param>
protected void DeleteFiles(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] fis = di.GetFiles();
foreach (FileInfo fi in fis)
{
try
{
fi.Delete();
}
catch
{
continue;
}
}
}
/// 删除文件夹下的所有文档
/// </summary>
/// <param name="path"></param>
protected void DeleteFiles(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] fis = di.GetFiles();
foreach (FileInfo fi in fis)
{
try
{
fi.Delete();
}
catch
{
continue;
}
}
}