琐碎--选择文件夹(路径)+生产txt格式的log+数据库操作方式

时间:2021-01-07 08:02:06

记录日常工作常用到的一些方法:

在.Net中处理系统文件相关的几个类分别是File、Directory、FileInfo、DirectoryInfo、DriveInfo、FileSystemWatcher。本文介绍下这几个类的用法。

1.File类提供静态方法用来创建、移动、复制、删除文件的操作,并可以打开文件流

2.Directory类提供静态方法用来创建、移动、复制、删除目录的操作

3.FileInfo类用类实例实现创建、复制、移动、删除文件的操作

4.DirectoryInfo提供创建、移动、复制、删除目录的操作,并可以枚举子目录

5.DriveInfo可以获得windows操作系统中的磁盘信息

6.FileSystemWatcher用来监视文件或目录变化,并引发事件

7.Path类提供文件名目录名操作的静态方法

1 选择文件操作,并将文件的路径记录下来:

OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = false;
ofd.Title = "请选择文件";
ofd.Filter = "(*.*)|*.*";
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
tb1.Text = ofd.FileName;//文件的路径
}

2 选择文件夹的操作,并将文件夹的路径记录下来:

FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.Description = "请选择文件夹";
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string str = fbd.SelectedPath;//文件夹的路径
}

3 、生成txt格式的log:

public void WriteLog(string txt)
{
try
{
txt = DateTime.Now.ToString() + " " + txt; string str = System.IO.Directory.GetCurrentDirectory();
string firstStr = str.Substring(, );
//生成文件夹
string filesPath = firstStr + ":/倒计时日志";
if (!Directory.Exists(filesPath))
{
Directory.CreateDirectory(filesPath);
} string filePath = filesPath + "/" + DateTime.Now.ToLongDateString()+ ".txt";
System.IO.FileStream fs = new System.IO.FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.Write | FileShare.ReadWrite | FileShare.Read);
fs.Close();
System.IO.StreamWriter sw = new StreamWriter(@filePath, true, Encoding.Unicode);
sw.WriteLine(txt);
sw.Close();
}
catch (Exception ex)
{
}
}

4 操作数据库常用方法:

数据库连接:static string connectionString = "Data Source=192.168.100.46;Initial Catalog=ExamDB;User ID=sa;Password=123";//连接数据库语句

查询数据库,返回一个数据集:

public static DataSet Query(string sqlString)
{
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
sqlConnection.Open();
SqlDataAdapter sqlDataApater = new SqlDataAdapter(sqlString, sqlConnection);
sqlDataApater.Fill(ds, "ds");
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
public static DataSet Query2(string sqlString)
{
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
using (SqlCommand sqlCommand = sqlConnection.CreateCommand())
{
DataSet ds = new DataSet();
try
{
sqlConnection.Open();
sqlCommand.CommandText = sqlString;
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
sqlDataAdapter.Fill(ds);
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
}

执行数据库操作,返回影响的行数:

public static int ExecuteSql(string sqlString)
{
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
using (SqlCommand sqlCommand = new SqlCommand(sqlString, sqlConnection))
{
try
{
sqlConnection.Open();
int rows = sqlCommand.ExecuteNonQuery();
return rows;
}
catch (SqlException ex)
{
sqlConnection.Close();
throw new Exception(ex.Message);
}
}
}
}

5、生成文件夹

string str = System.IO.Directory.GetCurrentDirectory();
string firstStr = str.Substring(, );
string filesPath = firstStr + ":/学习";
if (!Directory.Exists(filesPath))
{
Directory.CreateDirectory(filesPath);
}

6、获取指定文件内的文件

var imagedir = @"g:\ab/c";
var imageDirInfo = new DirectoryInfo(imagedir);
if (!imageDirInfo.Exists)
{
imageDirInfo.Create();
var everyOneSecuity = new DirectorySecurity(imagedir, AccessControlSections.Owner);
imageDirInfo.SetAccessControl(everyOneSecuity);
}
var filesInfo = imageDirInfo.GetFiles();
Array.Sort(filesInfo, new FIleLastTimeComparer());
var filesNameStr = string.Empty;
filesInfo.ToList().ForEach(f => filesNameStr += f.Name + "|");
string ss = filesNameStr;

获取指定路径path内格式为*.jpg的文件:

方法一:

string[] files = Directory.GetFiles(path, "*.jpg");
foreach (var dcmFile in files)
{
}

方法二:

DirectoryInfo dInfo = new DirectoryInfo(newPath);
foreach (FileInfo dcmFile in dInfo.GetFiles("*.jpg"))
{var newDcmFile = dcmFile.Name; }

7、执行.exe应用程序:

public static void Dcm2Img(string oriDcm, string descImg)
{
Process p = new Process();
p.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + @"dcmtk\dcmj2pnm.exe";
p.StartInfo.UseShellExecute = false; //是否使用外壳程序
p.StartInfo.CreateNoWindow = true; //是否在新窗口中启动该进程的值
p.StartInfo.RedirectStandardInput = true; //重定向输入流
p.StartInfo.RedirectStandardOutput = true; //重定向输出流
p.StartInfo.RedirectStandardError = true; //重定向错误流
//p.StartInfo.Arguments = @"+oj e:\a.dcm 1.jpg";
p.StartInfo.Arguments = string.Format("+oj {0} {1}", oriDcm, descImg);
p.Start();
p.WaitForExit();
p.Close();
}

//

引用:

.Net那点事儿系列:System.IO之windows文件操作