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

在.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+数据库操作方式的更多相关文章

  1. VB6 选择文件夹路径

    '--------------------------------------------------------------------------------------- ' Module : ...

  2. js选择文件夹路径

    该方法只支持IE. 语法:strDir=Shell.BrowseForFolder(Hwnd,Title,Options,[RootFolder])参数:Hwnd:包含对话框的窗体句柄(handle) ...

  3. 修改ckeditor/ckfinder上传文件文件夹 路径以日期格式命名

    修改/ckfinder/config.ascx文件: string dateDir = DateTime.Today.ToString("yyyyMM/"); ResourceTy ...

  4. Qt获取文件路径、文件夹路径

    1.首先是选择文件 QString file_path = QFileDialog::getOpenFileName(this, "请选择文件路径...", "默认路径( ...

  5. C# 选择文件、选择文件夹、打开文件(或者文件夹) 路径中获取文件全路径、目录、扩展名、文件名称 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名!!

    https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1.选择文件用OpenDialog OpenFileDialog dialog = new Ope ...

  6. MFC 选择一个文件或者文件夹路径

    //选择文件CFileDialog dlg(TRUE, 0, 0, OFN_HIDEREADONLY, "文本文件|*.txt|所有文件|*.*)||",0);if (dlg.Do ...

  7. java 弹出选择目录框(选择文件夹),获取选择的文件夹路径

    java 弹出选择目录框(选择文件夹),获取选择的文件夹路径 java 弹出选择目录框(选择文件夹),获取选择的文件夹路径:int result = 0;File file = null;String ...

  8. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  9. MFC 打开文件夹选择框并获取文件夹路径

    CString FicowGetDirectory() { BROWSEINFO bi; char name[MAX_PATH]; ZeroMemory(&bi, sizeof(BROWSEI ...

随机推荐

  1. nyoj 230/poj 2513 彩色棒 并查集+字典树+欧拉回路

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=230 题意:给你许许多多的木棍,没条木棍两端有两种颜色,问你在将木棍相连时,接触的端点颜色 ...

  2. 通过反射获取SSM的controller层的注解以及注解中的value值

    package com.reflection.test; import java.lang.annotation.Annotation; import java.lang.reflect.Invoca ...

  3. js追加元素,以及元素位置

    function setShow(val_param,text){ var ul = document.getElementById("copyhere"); //<li&g ...

  4. iBus

    0.闲言 闲来无事,重新玩玩Ubuntu,于是先把Ubuntu13.04删了(为什么是13.04?我也不知道)翻出14.04U盘安装,还算顺利,就是不知道为什么DiskGenius为什么一直提示分区表 ...

  5. SSH applicationContext.xml文件配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. LeetCode 2 Add Two Sum 解题报告

    LeetCode 2 Add Two Sum 解题报告 LeetCode第二题 Add Two Sum 首先我们看题目要求: You are given two linked lists repres ...

  7. Hanoi塔

    2016-03-19 17:01:35 问题描述: 假设有三个命名为 A B C 的塔座 ,在塔座A上插有n个直径大小不相同,由小到大编号为1 ,2 ,3 ,··· ,n的圆盘,要求将A座上的圆盘移至 ...

  8. Android组件---四大布局的属性详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4372222.html Android常见布局有下面几种: LinearL ...

  9. 第12章 纤程(Fiber)

    12.1 纤程对象的介绍 (1)纤程与线程的比较 比较 线程(Thread) 纤程(Fiber) 实现方式 是个内核对象 在用户模式中实现的一种轻量级的线程,是比线程更小的调度单位. 调度方式 由Mi ...

  10. Android优化—— Google 发布 Android 性能优化典范

    阅读目录 0)Render Performance 1)Understanding Overdraw 2)Understanding VSYNC 3)Tool:Profile GPU Renderin ...