您的位置:新葡亰496net > 电脑系统 > 新葡亰496net:上传文件,文件重命名的代码

新葡亰496net:上传文件,文件重命名的代码

发布时间:2019-06-16 03:26编辑:电脑系统浏览(101)

    Rename 命令:  

    新葡亰496net 1新葡亰496net 2        /**//// <summary>
    新葡亰496net 3新葡亰496net:上传文件,文件重命名的代码。        /// 上传文件,上传成功后返回一个 string 型的所上传文件名 上传文件不能超过3.5M
    新葡亰496net 4        /// </summary>
    新葡亰496net 5        /// <param name="UpFileInput">上传文件所用的控件的ID</param>
    新葡亰496net 6        /// <param name="FileSavePath">上传文件保存的路径(与上传页的相对路径)</param>
    新葡亰496net 7        /// <param name="P">Web窗体页</param>
    新葡亰496net 8        /// <returns>上传文件的文件名 String</returns>
    新葡亰496net 9        public string PubUpFile(System.Web.UI.HtmlControls.HtmlInputFile UpFileInput,string FileSavePath,Page P)
    新葡亰496net 10新葡亰496net 11        新葡亰496net 12{
    新葡亰496net 13            if(UpFileInput.PostedFile.ContentLength < 3000 * 1024)
    新葡亰496net 14新葡亰496net 15            新葡亰496net 16{
    新葡亰496net 17                //检查提供的目录是否存在,如不存在则创建
    新葡亰496net 18                PubExDirectory(FileSavePath,P);
    新葡亰496net 19                //获娶上传文件的文件名,并保存到指定的目录
    新葡亰496net 20                string UpFileName;
    新葡亰496net 21                if(UpFileInput.PostedFile.FileName.LastIndexOf("\")    !=    -1)
    新葡亰496net 22新葡亰496net 23                新葡亰496net 24{
    新葡亰496net 25                    UpFileName    =    UpFileInput.PostedFile.FileName.Substring(UpFileInput.PostedFile.FileName.LastIndexOf("\"),UpFileInput.PostedFile.FileName.Length - UpFileInput.PostedFile.FileName.LastIndexOf("\"));
    新葡亰496net 26                }
    新葡亰496net 27                else
    新葡亰496net 28新葡亰496net 29                新葡亰496net 30{
    新葡亰496net 31                    UpFileName    =    "\"   UpFileInput.PostedFile.FileName;
    新葡亰496net 32                }
    新葡亰496net 33
    新葡亰496net 34                UpFileInput.PostedFile.SaveAs(P.Server.MapPath(FileSavePath   UpFileName));
    新葡亰496net 35                return FileSavePath   UpFileName;
    新葡亰496net 36            }
    新葡亰496net 37            else
    新葡亰496net 38新葡亰496net 39            新葡亰496net 40{
    新葡亰496net 41                    P.Response.Write("<Script Language="JavaScript">n<!--n alert("上传文件不能大于3M,请选择正确的文件!")n //-->n</Script>");
    新葡亰496net 42                    return "";
    新葡亰496net 43
    新葡亰496net 44            }
    新葡亰496net 45        }
    新葡亰496net 46

    1、FileSystemWatcher用途:

    C#文件重命名的代码,

    C#中没有重命名的方法,自己写了一个方法,来处理文件的重命名。

    /// <summary>   

    /// 重命名文件夹内的所有子文件夹   

    /// </summary>   

    /// <param name="directoryName">文件夹名称</param>   

    /// <param name="newDirectoryName">新子文件夹名称格式字符串</param>   

    public void RenameDirectories(string directoryName, string newDirectoryName)   

    {   

      int i = 1;   

      string[] sDirectories = Directory.GetDirectories(directoryName);   

      foreach (string sDirectory in sDirectories)   

        {   

        string sDirectoryName = Path.GetFileName(sDirectory);   

        string sNewDirectoryName = string.Format(newDirectoryName, i );   

        string sNewDirectory = Path.Combine(directoryName, sNewDirectoryName);   

             Directory.Move(sDirectory, sNewDirectory);   

        }   

    }  

     

     

                    // 列表中的原始文件全路径名
                    string oldStr = ft.FileRoute @"/" ft.FileName ft.ExName;

                    // 新文件名
                    string newStr = ft.FileRoute @"/" preChar   name nextChar ft.ExName;

                    // 改名方法
                    FileInfo fi = new FileInfo(oldStr);
                    fi.MoveTo(Path.Combine(newStr));

    C#中没有重命名的方法,自己写了一个方法,来处理文件的重命名。 ///summary /// 重命名文件夹内的所有子文件夹 //...

    本文转自:

      // 描述:  

      FileSystemWatcher 元件用來監視檔案系統,而當檔案系統所包含的目錄或檔案變更時,也可以利用它來回應。這讓您能夠在特定檔案或目錄被建立、修改或刪除時快速且容易啟動商務處理流程。
    注:FileSystemWatcher元件是設計來監視目錄內的變更,而不是根目錄屬性本身的變更。Changed:變更目錄或檔案的大小、系統屬性、上次寫入時間、上次存取時間或安全性權限時引發。

    前端: 微信开发者工具

        重命名文件或目录。

      2、FileSystemWatcher常用屬性
    名称                                                说明

    后端:.Net

      // 语法:

    EnableRaisingEvents                     获取或设置一个值,该值指示是否启用此元件。

    服务器:阿里云

        rename [<Drive>:][<Path>]<FileName1> <FileName2>

    Filter                                               获取或设置筛选字串,用于确定在目录中监视哪些类型的文件。

    这里介绍微信小程序如何实现上传图片到自己的服务器上

      // 参数:

    IncludeSubdirectories                     获取或设置一个值,该值指示是否监视指定路径中的子目录。

    前端代码

        

    InternalBufferSize                            获取或设置内部缓存区的大小。

     

      // 说明:

    NotifyFilter                                       获取或设置监视的更改类型。

    [javascript] view plain copy print?

        --> 指定要重命名的文件或文件集的位置和名称。文件名可以包含通配符(*和?)。

    Path                                                 获取或设置监视的目录路径。

    1. data: {  
    2.   productInfo: {}  
    3. },  
    4. //添加Banner  
    5. 新葡亰496net:上传文件,文件重命名的代码。bindChooiceProduct: function () {  
    6.   var that = this;  
    7.   
    8.   wx.chooseImage({  
    9.     count: 3,  //最多可以选择的图片总数  
    10.     sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有  
    11.     sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有  
    12.     success: function (res) {  
    13.       // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片  
    14.       var tempFilePaths = res.tempFilePaths;  
    15.       //启动上传等待中...  
    16.       wx.showToast({  
    17.         title: '正在上传...',  
    18.         icon: 'loading',  
    19.         mask: true,  
    20.         duration: 10000  
    21.       })  
    22.       var uploadImgCount = 0;  
    23.       for (var i = 0, h = tempFilePaths.length; i < h; i ) {  
    24.         wx.uploadFile({  
    25.           url: util.getClientSetting().domainName   '/home/uploadfilenew',  
    26.           filePath: tempFilePaths[i],  
    27.           name: 'uploadfile_ant',  
    28.           formData: {  
    29.             'imgIndex': i  
    30.           },  
    31.           header: {  
    32.             "Content-Type": "multipart/form-data"  
    33.           },  
    34.           success: function (res) {  
    35.             uploadImgCount ;  
    36.             var data = JSON.parse(res.data);  
    37.             //服务器返回格式: { "Catalog": "testFolder", "FileName": "1.jpg", "Url": "" }  
    38.             var productInfo = that.data.productInfo;  
    39.             if (productInfo.bannerInfo == null) {  
    40.               productInfo.bannerInfo = [];  
    41.             }  
    42.             productInfo.bannerInfo.push({  
    43.               "catalog": data.Catalog,  
    44.               "fileName": data.FileName,  
    45.               "url": data.Url  
    46.             });  
    47.             that.setData({  
    48.               productInfo: productInfo  
    49.             });  
    50.   
    51.             //如果是最后一张,则隐藏等待中  
    52.             if (uploadImgCount == tempFilePaths.length) {  
    53.               wx.hideToast();  
    54.             }  
    55.           },  
    56.           fail: function (res) {  
    57.             wx.hideToast();  
    58.             wx.showModal({  
    59.               title: '错误提示',  
    60.               content: '上传图片失败',  
    61.               showCancel: false,  
    62.               success: function (res) { }  
    63.             })  
    64.           }  
    65.         });  
    66.       }  
    67.     }  
    68.   });  
    69. }  

      data: { productInfo: {} }, //添加Banner bindChooiceProduct: function () { var that = this;

      wx.chooseImage({

      count: 3,  //最多可以选择的图片总数
      sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths;
        //启动上传等待中...
        wx.showToast({
          title: '正在上传...',
          icon: 'loading',
          mask: true,
          duration: 10000
        })
        var uploadImgCount = 0;
        for (var i = 0, h = tempFilePaths.length; i < h; i  ) {
          wx.uploadFile({
            url: util.getClientSetting().domainName   '/home/uploadfilenew',
            filePath: tempFilePaths[i],
            name: 'uploadfile_ant',
            formData: {
              'imgIndex': i
            },
            header: {
              "Content-Type": "multipart/form-data"
            },
            success: function (res) {
              uploadImgCount  ;
              var data = JSON.parse(res.data);
              //服务器返回格式: { "Catalog": "testFolder", "FileName": "1.jpg", "Url": "https://test.com/1.jpg" }
              var productInfo = that.data.productInfo;
              if (productInfo.bannerInfo == null) {
                productInfo.bannerInfo = [];
              }
              productInfo.bannerInfo.push({
                "catalog": data.Catalog,
                "fileName": data.FileName,
                "url": data.Url
              });
              that.setData({
                productInfo: productInfo
              });
      
              //如果是最后一张,则隐藏等待中
              if (uploadImgCount == tempFilePaths.length) {
                wx.hideToast();
              }
            },
            fail: function (res) {
              wx.hideToast();
              wx.showModal({
                title: '错误提示',
                content: '上传图片失败',
                showCancel: false,
                success: function (res) { }
              })
            }
          });
        }
      }
      

      }); }

        --> 重命名文件时,不能指定新驱动器或路径。  

    SynchronizingObject                        获取或设置一个对象,该对象用于封装因目录更改而发出的事件处理程式调用。

    后端上传代码(将文件上传到服务器临时文件夹内)

        --> 文件名必须是唯一的文件名。 

      3、FileSystemWatcher常用事件

     

      // 实例:    

    名称                                                说明

     

        新葡亰496net 47

    Changed                                         当更改指定Path中的文件和目录时发生。

    [csharp] view plain copy print?

        新葡亰496net 48

    Created                                            当在指定Path中创建文件或目录时发生。

    1. [HttpPost]  
    2. public ContentResult UploadFileNew()  
    3. {  
    4.     UploadFileDTO model = new UploadFileDTO();  
    5.     HttpPostedFileBase file = Request.Files["uploadfile_ant"];  
    6.     if (file != null)  
    7.     {  
    8.         //公司编号 上传日期文件主目录  
    9.         model.Catalog = DateTime.Now.ToString("yyyyMMdd");  
    10.         model.ImgIndex = Convert.ToInt32(Request.Form["imgIndex"]);  
    11.   
    12.         //获取文件后缀  
    13.         string extensionName = System.IO.Path.GetExtension(file.FileName);  
    14.   
    15.         //文件名  
    16.         model.FileName = System.Guid.NewGuid().ToString("N")   extensionName;  
    17.   
    18.         //保存文件路径  
    19.         string filePathName = System.IO.Path.Combine(CommonHelper.GetConfigValue("ImageAbsoluteFolderTemp"), model.Catalog);  
    20.         if (!System.IO.Directory.Exists(filePathName))  
    21.         {  
    22.             System.IO.Directory.CreateDirectory(filePathName);  
    23.         }  
    24.         //相对路径  
    25.         string relativeUrl = CommonHelper.GetConfigValue("ImageRelativeFolderTemp");  
    26.         file.SaveAs(System.IO.Path.Combine(filePathName, model.FileName));  
    27.   
    28.         //获取临时文件相对完整路径  
    29.         model.Url = System.IO.Path.Combine(relativeUrl, model.Catalog, model.FileName).Replace("\", "/");  
    30.     }  
    31.     return Content(Newtonsoft.Json.JsonConvert.SerializeObject(model));  
    32. }  

      [HttpPost] public ContentResult UploadFileNew() {

      UploadFileDTO model = new UploadFileDTO();
      HttpPostedFileBase file = Request.Files["uploadfile_ant"];
      if (file != null)
      {
          //公司编号 上传日期文件主目录
          model.Catalog = DateTime.Now.ToString("yyyyMMdd");
          model.ImgIndex = Convert.ToInt32(Request.Form["imgIndex"]);
      
          //获取文件后缀
          string extensionName = System.IO.Path.GetExtension(file.FileName);
      
          //文件名
          model.FileName = System.Guid.NewGuid().ToString("N")   extensionName;
      
          //保存文件路径
          string filePathName = System.IO.Path.Combine(CommonHelper.GetConfigValue("ImageAbsoluteFolderTemp"), model.Catalog);
          if (!System.IO.Directory.Exists(filePathName))
          {
              System.IO.Directory.CreateDirectory(filePathName);
          }
          //相对路径
          string relativeUrl = CommonHelper.GetConfigValue("ImageRelativeFolderTemp");
          file.SaveAs(System.IO.Path.Combine(filePathName, model.FileName));
      
          //获取临时文件相对完整路径
          model.Url = System.IO.Path.Combine(relativeUrl, model.Catalog, model.FileName).Replace("\", "/");
      }
      return Content(Newtonsoft.Json.JsonConvert.SerializeObject(model));
      

      }

     

    Deleted                                            删除指定Path中的文件或目录时发生。

    [csharp] view plain copy print?

    Error                                                当内部缓存区溢出是发生。

    1. /// <summary>  
    2. /// 上传文件 返回数据模型  
    3. /// </summary>  
    4. public class UploadFileDTO  
    5. {  
    6.     /// <summary>  
    7.     /// 目录名称  
    8.     /// </summary>  
    9.     public string Catalog { set; get; }  
    10.     /// <summary>  
    11.     /// 文件名称,包括扩展名  
    12.     /// </summary>  
    13.     public string FileName { set; get; }  
    14.     /// <summary>  
    15.     /// 浏览路径  
    16.     /// </summary>  
    17.     public string Url { set; get; }  
    18.     /// <summary>  
    19.     /// 上传的图片编号(提供给前端判断图片是否全部上传完)  
    20.     /// </summary>  
    21.     public int ImgIndex { get; set; }  
    22. }  

      ///

      /// 上传文件 返回数据模型 /// public class UploadFileDTO {     ///     /// 目录名称     ///     public string Catalog { set; get; }     ///     /// 文件名称,包括扩展名     ///     public string FileName { set; get; }     ///     /// 浏览路径     ///     public string Url { set; get; }     ///     /// 上传的图片编号(提供给前端判断图片是否全部上传完)     ///     public int ImgIndex { get; set; } }

    Renamed                                         重命名指定Path 中的文件或目录时发生。

    [csharp] view plain copy print?

      4、FileSystemWatcher中Filter屬性通配符說明
    筛选字串                                            监视下列文件

    1. #region 获取配置文件Key对应Value值  
    2. /// <summary>  
    3. /// 获取配置文件Key对应Value值  
    4. /// </summary>  
    5. /// <param name="key"></param>  
    6. /// <returns></returns>  
    7. public static string GetConfigValue(string key)  
    8. {  
    9.     return ConfigurationManager.AppSettings[key].ToString();  
    10. }  
    11. #endregion  

      #region 获取配置文件Key对应Value值 ///

      /// 获取配置文件Key对应Value值 /// /// 新葡亰496net, /// public static string GetConfigValue(string key) {

      return ConfigurationManager.AppSettings[key].ToString();
      

      } #endregion

    *.*                                                      所有文件(预设值)。空字串("")同样监视所有文件。

    设置配置文件上传文件对应的文件夹信息

    *.txt                                                    具有“Txt”扩展名的所有文件。

     

    *recipe.doc                                        文件名以“recipe”结尾且具有“Doc”扩展名的所有文件。

     

    win*.xml                                              文件名以“win”开头且具有“xml”扩展名的所有文件。 
    Sales*200?.xls                                    匹配下列文件:

    [html] view plain copy print?

                                                                Sales July 2001.xls,Sales Aug 2002.xls,Sales March 2003.xls

    1. <appSettings>  
    2.   <!--图片临时文件夹 绝对路径-->  
    3.   <add key="ImageAbsoluteFolderTemp" value="D:Imagestemp" />  
    4.   <!--图片正式文件夹 绝对路径-->  
    5.   <add key="ImageAbsoluteFolderFinal" value="D:Imagesproduct" />  
    6.   
    7.   <!--图片临时文件夹 相对路径-->  
    8.   <add key="ImageRelativeFolderTemp" value=";  
    9.   <!--图片正式文件夹 相对路径-->  
    10.   <add key="ImageRelativeFolderFinal" value=";  
    11. </appSettings>  

                                                               不匹配:

    PS:上传到服务器的临时文件夹内,当用户点击保存才把这些文件移动到正式目录下

                                                                 Sales Now 1999.xls

     

    MyReport.Doc                                       只监视MyReport.Doc

    欢迎加入我的微信小程序技术交流群

      5、FileSystemWatcher中NotifyFilter枚舉值說明
    成员名称                                                  说明

    新葡亰496net 49

    Attributes                                                  文件或文件夹的属性

     

    CreationTime                                            文件或文件夹的创建时间。

    DirectoryName                                           目录名。

    FileName                                                    文件名

    LastAccess                                                文件或文件夹上次打开的时间、

    LastWrite                                                   上一次向文件或文件夹写入内容的日期。

    Security                                                      文件或文件夹的安全设置。

    Size                                                             文件或文件夹的大小。
      以上可組合此枚舉的成員以監視多種更改。組合時用“|”連接。

      6、使用方法:
      在窗體中拖入FileSystemWatcher控制項。
      設定需要用的事件
      編寫事件方法

    示例代码:

    using System.IO;
    namespace FileSystemWatcherDemo
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    UsingFileSystemWatcher();
    }
    ///<summary>
    /// 使用FileSystemWatcher方法
    ///</summary>
            void UsingFileSystemWatcher()
    {
    //6.2
    //FileSystemWatcher:侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。
    //获取或设置要监视的目录的路径。
                fswWatcher.Path =@"D:upload";
    //获取或设置要监视的更改类型。
                fswWatcher.NotifyFilter = NotifyFilters.LastWrite|NotifyFilters.FileName|NotifyFilters.LastAccess ;
    //获取或设置筛选字符串,用于确定在目录中监视哪些文件。
    //此處只能監控某一種文件,不能監控件多種文件,但可以監控所有文件
                fswWatcher.Filter ="*.doc";
    //获取或设置一个值,该值指示是否监视指定路径中的子目录。
                fswWatcher.IncludeSubdirectories =true;
    #region 6.3 觸發的事件
    //文件或目錄創建時事件
                fswWatcher.Created =new FileSystemEventHandler(fswWatcher_Created);
    //文件或目錄變更時事件
                fswWatcher.Changed =new FileSystemEventHandler(fswWatcher_Changed);
    //文件或目錄重命名時事件
                fswWatcher.Renamed =new RenamedEventHandler(fswWatcher_Renamed);
    //文件或目錄刪除時事件
                fswWatcher.Deleted =new FileSystemEventHandler(fswWatcher_Deleted);
    #endregion
    //获取或设置一个值,该值指示是否启用此组件。
                fswWatcher.EnableRaisingEvents =true;
    }
    #region 6.4 觸發事件的方法
    ///<summary>
    /// 文件或目錄創建時事件方法
    ///</summary>
    ///<param name="sender"></param>
    ///<param name="e"></param>
            void fswWatcher_Created(object sender, FileSystemEventArgs e)
    {
    MessageBox.Show("有新文件");
    }
    ///<summary>
    /// 文件或目錄變更時事件的方法
    ///</summary>
    ///<param name="sender"></param>
    ///<param name="e"></param>
            void fswWatcher_Changed(object sender, FileSystemEventArgs e)
    {
    }
    ///<summary>
    /// 文件或目錄重命名時事件的方法
    ///</summary>
    ///<param name="sender"></param>
    ///<param name="e"></param>
            void fswWatcher_Renamed(object sender, RenamedEventArgs e)
    {
    }
    ///<summary>
    /// 文件或目錄刪除時事件的方法
    ///</summary>
    ///<param name="sender"></param>
    ///<param name="e"></param>
            void fswWatcher_Deleted(object sender, FileSystemEventArgs e)
    {
    }
    #endregion
    }
    }

    本文由新葡亰496net发布于电脑系统,转载请注明出处:新葡亰496net:上传文件,文件重命名的代码

    关键词: