最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 實(shí)現(xiàn)文件上傳下載功能的實(shí)例代碼

 更新時(shí)間:2020年07月02日 11:39:55   作者:少年。  
這篇文章主要介紹了如何用c# 實(shí)現(xiàn)文件上傳下載功能,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

NuGet 安裝SqlSugar

1.Model文件下新建 DbContext 類

 public class DbContext
  {
    public DbContext()
    {
      Db = new SqlSugarClient(new ConnectionConfig()
      {
        ConnectionString = "server=localhost;uid=root;pwd=woshishui;database=test",
        DbType = DbType.MySql,
        InitKeyType = InitKeyType.Attribute,//從特性讀取主鍵和自增列信息
        IsAutoCloseConnection = true,//開啟自動(dòng)釋放模式和EF原理一樣我就不多解釋了
    });
    //調(diào)式代碼 用來打印SQL 
    Db.Aop.OnLogExecuting = (sql, pars) =>
    {
      Console.WriteLine(sql + "\r\n" +
               Db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
      Console.WriteLine();
    };

  }
  //注意:不能寫成靜態(tài)的,不能寫成靜態(tài)的
  public SqlSugarClient Db;//用來處理事務(wù)多表查詢和復(fù)雜的操作
  public SimpleClient<uploading> uploadingdb { get { return new SimpleClient<uploading>(Db); } }//用來處理Student表的常用操作
}

2.建uploading實(shí)體類

[SugarTable("uploading")]
  public class uploading
  {
  //指定主鍵和自增列,當(dāng)然數(shù)據(jù)庫中也要設(shè)置主鍵和自增列才會(huì)有效
  [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
  public int id { get; set; }
  public string name { get; set; }
  public string path { get; set; }
}

3.Manager文件下建UploadingManager

 class UploadingManager : DbContext
  {
    public List<uploading> Query()
    {
      try
      {
        List<uploading> data = Db.Queryable<uploading>()
          .Select(f => new uploading
          {
            name = f.name,
            path = f.path
          })
          .ToList();
        return data;
      }
      catch (Exception e)
      {
        Console.WriteLine(e);
        throw;
      }
  }

  public List&lt;string&gt; GetName(string name)
  {
    List&lt;string&gt; data = Db.Queryable&lt;uploading&gt;()
      .Where(w=&gt;w.name== name)
      .Select(f =&gt; f.path)
      .ToList();
    return data;

  }
}

窗體加載Form1_Load

1.讀取到數(shù)據(jù)庫字段name并賦值

 private void Form1_Load(object sender, EventArgs e)
    {
      List<uploading> data = uploading.Query();
      foreach (var data1 in data)
      {
        comboBox1.Items.Add(data1.name);
      }
      comboBox1.SelectedIndex = 0;
  }

2.comboBox事件觸發(fā)條件查詢到上傳的path

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
      List<string> data = uploading.GetName(comboBox1.Text);
    for (int i = 0; i &lt; data.Count; i++)
    {
      textBox1.Text = data[0];
    }
  }

3.上傳事件觸發(fā)

 private void Button1_Click(object sender, EventArgs e)
    {
       string path = textBox1.Text;
      CopyDirs(textBox3.Text,
        path);
    }
 private void CopyDirs(string srcPath, string aimPath)
    {
      try
      {
        // 檢查目標(biāo)目錄是否以目錄分割字符結(jié)束如果不是則添加
        if (aimPath[aimPath.Length - 1] != System.IO.Path.DirectorySeparatorChar)
        {
          aimPath += System.IO.Path.DirectorySeparatorChar;
        }
      // 判斷目標(biāo)目錄是否存在如果不存在則新建
      if (!System.IO.Directory.Exists(aimPath))
      {
        System.IO.Directory.CreateDirectory(aimPath);
      }

      // 得到源目錄的文件列表,該里面是包含文件以及目錄路徑的一個(gè)數(shù)組
      // 如果你指向copy目標(biāo)文件下面的文件而不包含目錄請使用下面的方法
      // string[] fileList = Directory.GetFiles(srcPath);
      string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
      // 遍歷所有的文件和目錄
      foreach (string file in fileList)
      {
        // 先當(dāng)作目錄處理如果存在這個(gè)目錄就遞歸Copy該目錄下面的文件
        if (System.IO.Directory.Exists(file))
        {
          CopyDir(file, aimPath + System.IO.Path.GetFileName(file));

          DisplaylistboxMsg(&quot;上傳成功&quot;);
        }
        // 否則直接Copy文件
        else
        {
          System.IO.File.Copy(file, aimPath + System.IO.Path.GetFileName(file), true);
          DisplaylistboxMsg(&quot;上傳成功&quot;);
        }
      }
    }
    catch (Exception e)
    {
      DisplaylistboxMsg(&quot;上傳失敗&quot; + e.Message);
    }
  }

4.下載事件觸發(fā)

private void Button2_Click(object sender, EventArgs e)
    {
      CopyDir(@"\\10.55.2.3\mech_production_line_sharing\Test\" + textBox2.Text, textBox4.Text);
    }
private void CopyDir(string srcPath, string aimPath)

{

// 檢查目標(biāo)目錄是否以目錄分割字符結(jié)束如果不是則添加

if (aimPath[aimPath.Length - 1] != System.IO.Path.DirectorySeparatorChar)

{

aimPath += System.IO.Path.DirectorySeparatorChar;

}

    // 判斷目標(biāo)目錄是否存在如果不存在則新建
    if (!System.IO.Directory.Exists(aimPath))
    {
      System.IO.Directory.CreateDirectory(aimPath);
    }

    // 得到源目錄的文件列表,該里面是包含文件以及目錄路徑的一個(gè)數(shù)組
    // 如果你指向copy目標(biāo)文件下面的文件而不包含目錄請使用下面的方法
    // string[] fileList = Directory.GetFiles(srcPath);
    string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
    // 遍歷所有的文件和目錄
    foreach (string file in fileList)
    {
      // 先當(dāng)作目錄處理如果存在這個(gè)目錄就遞歸Copy該目錄下面的文件
      if (System.IO.Directory.Exists(file))
      {
        CopyDir(file, aimPath + System.IO.Path.GetFileName(file));
        DisplaylistboxMsg(&quot;下載成功&quot;);
      }
      // 否則直接Copy文件
      else
      {
        System.IO.File.Copy(file, aimPath + System.IO.Path.GetFileName(file), true);
        DisplaylistboxMsg(&quot;下載成功&quot;);
      }
    }
  }

以上就是c# 實(shí)現(xiàn)文件上傳下載功能的實(shí)例代碼的詳細(xì)內(nèi)容,更多關(guān)于c# 實(shí)現(xiàn)文件上傳下載的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#二維數(shù)組與多維數(shù)組的具體使用

    C#二維數(shù)組與多維數(shù)組的具體使用

    本文主要介紹了C#二維數(shù)組與多維數(shù)組的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • C#中Cookie之存儲(chǔ)對象

    C#中Cookie之存儲(chǔ)對象

    這篇文章主要介紹了在項(xiàng)目中,需要將用戶的信息存到Cookie中,但是cookie只能保存字符串,所以需要先序列號,然后在存儲(chǔ)在cookie中,有需要的朋友可以借鑒下
    2015-07-07
  • C#判斷網(wǎng)站是否能訪問或者斷鏈的方法

    C#判斷網(wǎng)站是否能訪問或者斷鏈的方法

    這篇文章主要介紹了C#判斷網(wǎng)站是否能訪問或者斷鏈的方法,實(shí)例分析了C#判斷網(wǎng)站是否能訪問的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C#中Datetimepicker出現(xiàn)問題的解決方法

    C#中Datetimepicker出現(xiàn)問題的解決方法

    這篇文章主要給大家介紹了關(guān)于C#中Datetimepicker出現(xiàn)問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • c# record的使用場景

    c# record的使用場景

    這篇文章主要介紹了c# record的使用場景,幫助大家更好的理解和學(xué)習(xí)使用c#的新特性,感興趣的朋友可以了解下
    2021-02-02
  • C#操作windows注冊表的方法

    C#操作windows注冊表的方法

    這篇文章主要介紹了C#操作windows注冊表的方法,涉及C#針對注冊表的讀取與寫入技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#凈化版WebApi框架的實(shí)現(xiàn)

    C#凈化版WebApi框架的實(shí)現(xiàn)

    這篇文章主要介紹了C#凈化版WebApi框架的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • Unity實(shí)戰(zhàn)之制作動(dòng)畫編輯器

    Unity實(shí)戰(zhàn)之制作動(dòng)畫編輯器

    為了更方便地為UI視圖添加動(dòng)畫,將動(dòng)畫的編輯功能封裝在了UI View類中,可以通過編輯器快速的為視圖編輯動(dòng)畫。本文將通過Unity制作一個(gè)動(dòng)畫編輯器,需要的可以參考一下
    2022-02-02
  • 判斷一個(gè)整數(shù)是否是2的N次冪實(shí)現(xiàn)方法

    判斷一個(gè)整數(shù)是否是2的N次冪實(shí)現(xiàn)方法

    下面小編就為大家分享一篇判斷一個(gè)整數(shù)是否是2的N次冪實(shí)現(xiàn)方法,實(shí)例簡潔,具有很好的參考價(jià)值。希望對大家有所幫助
    2017-11-11
  • C#如何動(dòng)態(tài)設(shè)置屏幕分辨率

    C#如何動(dòng)態(tài)設(shè)置屏幕分辨率

    這篇文章主要為大家詳細(xì)介紹了C#動(dòng)態(tài)設(shè)置屏幕分辨率的方法,我們可以使用Screen類設(shè)置屏幕分辨率,感興趣的小伙伴們可以參考一下
    2016-04-04

最新評論

江川县| 涿鹿县| 南川市| 昌都县| 东莞市| 乡宁县| 叙永县| 庄浪县| 聂荣县| 临澧县| 岑巩县| 大埔县| 南川市| 南康市| 简阳市| 黎城县| 台东县| 武穴市| 迭部县| 棋牌| 哈巴河县| 芦山县| 白玉县| 麟游县| 阿荣旗| 大竹县| 民县| 龙江县| 绥芬河市| 买车| 驻马店市| 新营市| 汝城县| 和顺县| 郁南县| 聂荣县| 徐州市| 承德县| 长沙市| 肇庆市| 松阳县|