c#中文件的上传与管理(查找文件)

1,检查文件是否存在
在使用文件时不只是要知道文件路径,更重要的是知道这个文件是否存在,如果不存在,程序调用文件时会发生错误。
步骤:
(一):创建一个Windows窗体应用程序
(二):在该窗体中添加一个TextBox控件,用来显示选择的文件,一个Button控件,用来判断文件是否存在。
(三):代码如下

 1 private void button1_Click(object sender, EventArgs e)
 2         {
 3             if (File.Exists(textBox1.Text))//判断文件是否存在
 4             {
 5                 MessageBox.Show("该文件已经存在");
 6             }
 7             else
 8             {
 9                 MessageBox.Show("该文件不存在");
10             }           
11         }

(四):运行结果

c#中文件的上传与管理(查找文件)_第1张图片

 

本实例中主要用到了File类的Exists方法。
File类的Exists方法用来确定指定的文件是否存在。其语法格式如下:
public static bool Exists(string patb);
参数说明:
1,path:要检查的文件。
2,返回值:如果调用方法具有要求的权限并且path包含现有的文件的名称,则为true;否则为false。如果path为null、无效路径或零长度字符串,则此方法也返回false。如果调用方不具有读取指定文件所需的足够权限,则不引发异常并且该方法返回false。这与path是否存在无关。

 

2,获取文件夹下的所有子文件及文件的名称
根据指定的文件夹路径,获取该文件下的所有子文件夹和文件的名称,并将获取的名称按照先后顺序,以节点的方式添加到TreeView控件中。
(一):创建一个Windows窗体应用程序
(二):在该窗体中添加一个TextBox控件,用来显示要遍历的文件夹路径。添加一个FolderBrowserDialog控件,用于弹出"浏览文件夹"对话框。,一个Button控件,用来选择文件夹的路径。添加一个TreeView控件,用于显示指定文件夹下的所有子文件夹及文件的名称。
(三):代码如下

 1         string tempstr;
 2         Thread thdAddFile;
 3         /*按钮的Click事件,用于获取要遍历文件夹的路径,并将该路径下的所有子文件夹以及文件的名称通过线程显示在TreeView控件上*/
 4         private void button1_Click(object sender, EventArgs e)
 5         {
 6             if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)//打开文件夹对话框
 7             {
 8                 textBox1.Text = folderBrowserDialog1.SelectedPath;//显示选择的文件夹路径
 9                 tempstr = folderBrowserDialog1.SelectedPath;//存储选择的文件夹路径
10                 thdAddFile = new Thread(new ThreadStart(SetAddFile));//创建一个线程
11                 thdAddFile.Start();//执行当前线程
12             }
13         }
14         /*自定义方法SetAddFile主要是实现委托线程的应用*/
15         public delegate void AddFile();//定义委托线程
16         public void SetAddFile()
17         {
18 
19             this.Invoke(new AddFile(RunAddFile));//对指定的线程进行托管
20         }
21 
22         /*自定义方法RunAddFile主要是通过线程来实现对文件夹下所有子文件夹和文件的遍历*/
23         public void RunAddFile()
24         {
25 
26             TreeNode TNode = new TreeNode();//创建一个线程
27             File_Copy(treeView1, tempstr, TNode, 0);
28             Thread.Sleep(0);//挂起主线程
29             thdAddFile.Abort();//执行线程
30         }
31 
32         /*自定义方法File_Copy是一个递归方法,主要通过实现遍历指定的文件夹下所有的子文件和文件,并按照其先后顺序将文件夹名称和文件的名称显示在TreeView控件上,参数TV表示TreeView控件,参数Sdir表示指定文件夹的路径,参数TNode表示TreeView控件的当前节点,参数n表示当前操作的是文件,还是文件夹,如果为0,表示文件夹,否则是文件*/
33         public void File_Copy(TreeView TV, string Sdir, TreeNode TNode, int n)
34         {
35 
36             DirectoryInfo dir = new DirectoryInfo(Sdir);
37             try
38             {
39                 if (!dir.Exists)//判断所指定的文件或文件夹是否存在
40 
41                     return;
42                 DirectoryInfo dirD = dir as DirectoryInfo;//如果给定参数不是文件夹则退出
43                 if (dirD == null)//判断文件夹是否为空
44 
45                     return;
46 
47                 else
48                 {
49                     if (n == 0)
50                     {
51                         TNode = TV.Nodes.Add(dirD.Name);//添加文件夹的名称
52                         TNode.Tag = 1;
53                     }
54                     else
55                     {
56                         TNode = TNode.Nodes.Add(dirD.Name);//在文件夹中添加各子文件夹的名称
57                         TNode.Tag = 1;
58                     }
59                 }
60                 FileSystemInfo[] files = dirD.GetFileSystemInfos();//获取文件夹中所有文件夹和文件
61                 foreach (FileSystemInfo FSys in files)//对单个FileSystemInfo进行判断,如果是文件夹则执行递归操作
62                 {
63                     FileInfo file = FSys as FileInfo;
64                     if (file != null)//如果是文件,进行文件的复制操作
65                     {
66                         FileInfo SFInfo = new FileInfo(file.DirectoryName + "\\" + file.Name);//获取文件所在的原始路径
67                         TNode.Nodes.Add(file.Name);//添加文件
68                         TNode.Tag = 1;
69                     }
70                     else
71                     {
72                         string pp = FSys.Name;//获取当前搜索到的文件夹名称到
73                         File_Copy(TV, Sdir + "\\" + FSys.ToString(), TNode, 1);//如果是文件夹,则进行递归调用
74                     }
75                 }
76 
77             }
78             catch (Exception ex)
79             {
80 
81                 MessageBox.Show(ex.Message);
82                 return;
83             }
84         }

(四):运行结果

c#中文件的上传与管理(查找文件)_第2张图片

本实例主要用了DirectoryInfo类的GetFileSystemInfos方法、FileInfo类的DirectoryName和Name属性。
1,DirectoryInfo类的GetFileSystemInfos方法用来检索表示当前目录的文件和子目录的强类型FileSystemInfo对象的数组,该方法有两种重载形式,其重载形式如下:
public FileSystemInfo[] GetFileSystemInfos()
2,FileInfo类的DirectoryName和Name属性用来获取表示目录的完整路径的字符串。其语法如下:
public string DirectiryName { get; }
3,FileName类的Name属性用来获取文件名。其语法格式如下:
public override string Name { get; }

 

3,创建PDF文档
PDF文档凭借界面美观、漂亮、大方赢得了众多PDF迷的喜爱,该文档简单易用,可以实现打印、查找及阅读等常用的功能。
步骤:
(一):创建一个Windows窗体应用程序
(二):在该窗体中添加一个RichTextBox控件,用来输入要保存的内容。一个Button控件,用来创建PDF文档。
(三):代码如下

 1 private void button1_Click(object sender, EventArgs e)
 2         {
 3             try
 4             {
 5                 SaveFileDialog saveFileDialog = new SaveFileDialog();//给出文件保存信息,确定保存位置
 6                 saveFileDialog.Filter = "PDF文件(*.PDF)|*.PDF";
 7                 if (saveFileDialog.ShowDialog() == DialogResult.OK)
 8                 {
 9                     string FilePath = saveFileDialog.FileName;
10                     iTextSharp.text.Document document = new iTextSharp.text.Document();
11                     PdfWriter.GetInstance(document, new FileStream(FilePath, FileMode.Create));
12                     document.Open();//打开文件
13                     BaseFont baseFont = BaseFont.CreateFont(@"C:\\windows\fonts\SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
14                     iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 20);//设置文档字体样式
15                     document.Add(new Paragraph(richTextBox1.Text, font));//内容添加至PDF文档中
16                     document.Close();//关闭文档
17                     MessageBox.Show("祝贺你,文档创建成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
18                 }
19             }
20             catch (Exception ex)
21             {
22 
23                 MessageBox.Show(ex.Message);
24             }
25         }

(四):运行结果

c#中文件的上传与管理(查找文件)_第3张图片  c#中文件的上传与管理(查找文件)_第4张图片

 

在本例中创建PDF文档,用到了第三方组件itextsharp.dll。具体实现,首先创建一个itextSharp.text.Document对象,然后使用该对象创建一个Writer对象,打开当前的Document对象,向该对象内写入内容,最后关闭Document对象,完成创建PDF文档。使用Document对象的Add方法将内容添加到PDF文档的代码如下:
//使用指定的路径和创建模式初始化文件流对象
PdfWriter.GetInstance(document, new FileStream(FilePath, FileMode.Create));
document.Open();//打开文件
BaseFont baseFont = BaseFont.CreateFont(@"C:\\windows\fonts\SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 20);//设置文档字体样式
document.Add(new Paragraph(richTextBox1.Text, font));//内容添加至PDF文档中
document.Close();//关闭文档

你可能感兴趣的:(c#中文件的上传与管理(查找文件))