琐碎--选择文件夹(路径)+生产txt格式的log+数据库操作方式
记录日常工作常用到的一些方法:
在.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文件操作
琐碎--选择文件夹(路径)+生产txt格式的log+数据库操作方式的更多相关文章
- VB6 选择文件夹路径
'--------------------------------------------------------------------------------------- ' Module : ...
- js选择文件夹路径
该方法只支持IE. 语法:strDir=Shell.BrowseForFolder(Hwnd,Title,Options,[RootFolder])参数:Hwnd:包含对话框的窗体句柄(handle) ...
- 修改ckeditor/ckfinder上传文件文件夹 路径以日期格式命名
修改/ckfinder/config.ascx文件: string dateDir = DateTime.Today.ToString("yyyyMM/"); ResourceTy ...
- Qt获取文件路径、文件夹路径
1.首先是选择文件 QString file_path = QFileDialog::getOpenFileName(this, "请选择文件路径...", "默认路径( ...
- C# 选择文件、选择文件夹、打开文件(或者文件夹) 路径中获取文件全路径、目录、扩展名、文件名称 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名!!
https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1.选择文件用OpenDialog OpenFileDialog dialog = new Ope ...
- MFC 选择一个文件或者文件夹路径
//选择文件CFileDialog dlg(TRUE, 0, 0, OFN_HIDEREADONLY, "文本文件|*.txt|所有文件|*.*)||",0);if (dlg.Do ...
- java 弹出选择目录框(选择文件夹),获取选择的文件夹路径
java 弹出选择目录框(选择文件夹),获取选择的文件夹路径 java 弹出选择目录框(选择文件夹),获取选择的文件夹路径:int result = 0;File file = null;String ...
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...
- MFC 打开文件夹选择框并获取文件夹路径
CString FicowGetDirectory() { BROWSEINFO bi; char name[MAX_PATH]; ZeroMemory(&bi, sizeof(BROWSEI ...
随机推荐
- SQL Server with(nolock)详解
大家在写查询时,为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就是查询是不锁定表,从而达到提高查询速度的目的. 什么是并发访问:同一时间有多个用户访问同一资源,并发 ...
- [译]OpenStack Object Storage Monitoring
注:翻译的不完整,主要是有些地方翻译后反而妨碍理解,有些不知道怎么翻,anyway,需要时拿来用用也是可行的,顺便共享啦.欢迎提意见. 一个OpenStack Object Storage(OSOS) ...
- 写一个iOS VoIP应用需要知道什么?
IOS编程--VoIP解密 一般来说, IOS很少给App后台运行的权限. 仅有的方式就是 VoIP. IOS少有的为VoIP应用提供了后台socket连接,定期唤醒并且随开机启动的权限.而这些就是I ...
- Zookeeper C API 指南一(转)
Zookeeper 监视(Watches) 简介 Zookeeper C API 的声明和描述在 include/zookeeper.h 中可以找到,另外大部分的 Zookeeper C API 常量 ...
- FZU1894 志愿者选拔 --单调队列
做法:维护一个单调递减序列,只需输出序列中的第一个元素即可. 对于命令我们可以进行不同的处理: 如果是Q命令,则判断当前队列中是否仍有元素,如果没有则输出-1,如果有则直接输出队首. 如果是G命令,则 ...
- [3D跑酷] UI事件处理系统
在我们的Unity游戏项目中,GUI的表现采用NGUI.记录一下我们的处理方式: 需要解决的问题 1.需要处理大量按钮的点击事件 2.需要处理界面跳转事件 3.需要处理界面元素更新事件 解决方案 GU ...
- java9-4 包
面试题: package,import,class有没有顺序关系? 有. package > import > class Package:只能有一个 import:可以有多个 class ...
- SqlServer 注入技巧
一.SA权限执行命令,如何更快捷的获取结果? 有显示位 显示位 其实这里的关键并不是有无显示位.exec master..xp_cmdshell 'systeminfo'生成的数据写进一张表的时候,会 ...
- 【转】【WPF】MVVM模式的3种command
1.DelegateCommand 2.RelayCommand 3.AttachbehaviorCommand 因为MVVM模式适合于WPF和SL,所以这3种模式中也有一些小差异,比如RelayCo ...
- Tasks.Parallel
.Net多线程编程-System.Threading.Tasks.Parallel System.Threading.Tasks.Parallel类提供了Parallel.Invoke,Paral ...