zoukankan      html  css  js  c++  java
  • C#文件操作

    1、判断指定路径下文件是否存在:

         /// <summary>
            /// 判断服务器上指定文件夹下指定文件是否存在。
            /// </summary>
            /// <returns>是否存在</returns>
            [WebMethod(Description = "判断指定路径下的指定文件是否存在。")]
            public bool IsScheduleFileExists(string serverFilePath,string serverFileName)
            {
                if (String.IsNullOrEmpty(serverFilePath))
                {
                    serverFilePath = Server.MapPath("~/Temp");
                }
    
                if (!serverFilePath.EndsWith(@""))
                {
                    serverFilePath += @"";
                }
    
                if (!Directory.Exists(serverFilePath))
                {
                    return false;
                }
    
                String destinationFileFullName = String.Format(@"{0}{1}", serverFilePath, serverFileName);
                if (System.IO.File.Exists(destinationFileFullName))
                {
                    return true;
                }
                return false;
            }
    

    2、合并指定路径下的文件集:

         /// <summary>
            /// 合并文件。
            /// </summary>
            /// <param name="packedCount">总包数。</param>
            /// <param name="serverFileSavePath">文件保存路径。</param>
            /// <param name="destinationFileFullName">文件全名。</param>
            private void MergeFiles(Int32 packedCount, String serverFileSavePath, String destinationFileFullName)
            {
                FileStream fs = new FileStream(destinationFileFullName, FileMode.Append, FileAccess.Write);
                FileStream fsTemp = null;
                String tempFileName = String.Empty;
                Int32 readBytes;
                Byte[] bytes = new Byte[this.bufferSize];
                for (Int32 idx = 1; idx < packedCount; idx++)  //从第二个线程接收的临时文件开始合并
                {
                    tempFileName = String.Format(@"{0}{1}{2}.tmp", serverFileSavePath, idx);
                    fsTemp = new FileStream(tempFileName, FileMode.Open, FileAccess.Read);
                    readBytes = fsTemp.Read(bytes, 0, this.bufferSize);
    
                    while (readBytes > 0)
                    {
                        fs.Write(bytes, 0, readBytes);
                        readBytes = fsTemp.Read(bytes, 0, this.bufferSize);
                    }
    
                    fsTemp.Close();
                    fsTemp.Dispose();
                    File.Delete(tempFileName);
                }
    
                fs.Flush();
                fs.Close();
                fs.Dispose();
            }
    

      

     3、文件拷贝:

                FileInfo sourceFileInfo = new FileInfo(sourceFullFileName);
                FileInfo destFullFileInfo = new FileInfo(destFullFileName);
                if (sourceFileInfo.Length != destFullFileInfo.Length)
                {
                    return "文件大小不一致";
                }    
    
    
                File.Delete(sourceFullFileName);    
    

     4、判断两文件大小:

                    //先把目录创建出来, 否者Copy会失败
    		string strPath = System.IO.Path.GetDirectoryName(destFullFileName);
    		System.IO.Directory.CreateDirectory(strPath);
    
                    File.Copy(sourceFullFileName, destFullFileName, true);        
    
  • 相关阅读:
    Firebird 用查询结果集更新数据,merge
    wcf 登录认证 angular 认证重定向
    WOSA/XFS PTR Form解析库—xfsptrdata.h
    WOSA/XFS PTR Form解析库—头文件
    2019,开启新征程
    VC中添加头文件以及库
    .net4.0多进程间共享内存实现通信(VB.Net)
    共享内存操作类(C#源码)
    VC++ 共享内存读写操作
    c#实现内存映射文件共享内存
  • 原文地址:https://www.cnblogs.com/shenchao/p/3922489.html
Copyright © 2011-2022 走看看