首页 > 代码库 > C#读写共享目录

C#读写共享目录

C#读写共享目录

该试验分下面步骤:

1、在server设置一个共享目录。在这里我的serverip地址是10.80.88.180,共享目录名字是test,test里面有两个文件:good.txt和bad.txt,訪问权限,username是admin,password是admin。

2、新建一个webapplication项目,在前台页面加一个listbox。ID是ListBox1.

3、加入后台代码例如以下:当中包括的功能是读文件。这里以读good 文件为例;写文件,这里以写bad文件为例。还有是将test目录下的文件名称列到listbox中。

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Diagnostics;
using System.IO;


namespace WebApplication2
{

    public class FileShare
    {
        public FileShare() { }

        public static bool connectState(string path)
        {
            return connectState(path,"","");
        }

        public static bool connectState(string path,string userName,string passWord)
         {
            bool Flag = false;
            Process proc = new Process();
            try
            {
                proc.StartInfo.FileName = "cmd.exe";
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput=true;
                proc.StartInfo.RedirectStandardError=true;
                proc.StartInfo.CreateNoWindow=true;
                proc.Start();
                string dosLine = @"net use " + path + " /User:" + userName + " " + passWord + " /PERSISTENT:YES";
                proc.StandardInput.WriteLine(dosLine);
                proc.StandardInput.WriteLine("exit");
                while (!proc.HasExited)
                {
                    proc.WaitForExit(1000);
                }
                string errormsg = proc.StandardError.ReadToEnd();
                proc.StandardError.Close();
                if (string.IsNullOrEmpty(errormsg))
                {
                    Flag = true;
                }
                else
                {
                    throw new Exception(errormsg);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }
            return Flag;
        }


        //read file
        public static void ReadFiles(string path)
        {
            try
            {
                // Create an instance of StreamReader to read from a file.
                
// The using statement also closes the StreamReader.
                using (StreamReader sr = new StreamReader(path))
                {
                    String line;
                    // Read and display lines from the file until the end of 
                    
// the file is reached.
                    while ((line = sr.ReadLine()) != null)
                    {
                        Console.WriteLine(line);
                        
                    }
                }
            }
            catch (Exception e)
            {
                // Let the user know what went wrong.
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            } 

        }

        //write file
        public static void WriteFiles(string path)
        {
            try
            {
                // Create an instance of StreamWriter to write text to a file.
                
// The using statement also closes the StreamWriter.
                using (StreamWriter sw = new StreamWriter(path))
                {
                    // Add some text to the file.
                    sw.Write("This is the ");
                    sw.WriteLine("header for the file.");
                    sw.WriteLine("-------------------");
                    // Arbitrary objects can also be written to the file.
                    sw.Write("The date is: ");
                    sw.WriteLine(DateTime.Now);
                }
            }
            catch (Exception e)
            {
                // Let the user know what went wrong.
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }
        }
    }

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            
            bool status = false;

            //连接共享目录
            status = FileShare.connectState(@"\\10.80.88.180\test""admin""admin");
            if (status)
            {
                DirectoryInfo theFolder = new DirectoryInfo(@"\\10.80.88.180\test");

                //先測试读文件。把目录路径与文件名称连接
                string filename = theFolder.ToString()+"\\good.txt";
                FileShare.ReadFiles(filename);

                //測试写文件,拼出完整的路径
                filename = theFolder.ToString() + "\\bad.txt";
                FileShare.WriteFiles(filename);
               
                //遍历共享目录。把共享目录下的文件列表列到listbox
                foreach (FileInfo nextFile in theFolder.GetFiles())
                {
                    ListBox1.Items.Add(nextFile.Name);
                }
            }
            else
            {
                ListBox1.Items.Add("未能连接。");
            }
        }
    }

按以上步骤。就可以实现读写网络共享文件。

C#读写共享目录