.NET 文件相关的所有操作
1 public static class FileSystemHelper 2 { 3 #region 检测指定目录是否存在 4 /// <summary> 5 /// 检测指定目录是否存在 6 /// </summary> 7 /// <param name="directoryPath">目录的绝对路径</param> 8 /// <returns></returns> 9 public static bool IsExistDirectory(string directoryPath) 10 { 11 return Directory.Exists(directoryPath); 12 } 13 #endregion 14 15 #region 检测指定文件是否存在,如果存在返回true 16 /// <summary> 17 /// 检测指定文件是否存在,如果存在则返回true。 18 /// </summary> 19 /// <param name="filePath">文件的绝对路径</param> 20 public static bool IsExistFile(string filePath) 21 { 22 return File.Exists(filePath); 23 } 24 #endregion 25 26 #region 获取指定目录中的文件列表 27 /// <summary> 28 /// 获取指定目录中所有文件列表 29 /// </summary> 30 /// <param name="directoryPath">指定目录的绝对路径</param> 31 public static string[] GetFileNames(string directoryPath) 32 { 33 //如果目录不存在,则抛出异常 34 if (!IsExistDirectory(directoryPath)) 35 { 36 throw new FileNotFoundException(); 37 } 38 39 //获取文件列表 40 return Directory.GetFiles(directoryPath); 41 } 42 #endregion 43 44 #region 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法. 45 /// <summary> 46 /// 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法. 47 /// </summary> 48 /// <param name="directoryPath">指定目录的绝对路径</param> 49 public static string[] GetDirectories(string directoryPath) 50 { 51 try 52 { 53 return Directory.GetDirectories(directoryPath); 54 } 55 catch (IOException ex) 56 { 57 throw ex; 58 } 59 } 60 #endregion 61 62 #region 获取指定目录及子目录中所有文件列表 63 /// <summary> 64 /// 获取指定目录及子目录中所有文件列表 65 /// </summary> 66 /// <param name="directoryPath">指定目录的绝对路径</param> 67 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 68 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 69 /// <param name="isSearchChild">是否搜索子目录</param> 70 public static string[] GetFileNames(string directoryPath, string searchPattern, bool isSearchChild) 71 { 72 //如果目录不存在,则抛出异常 73 if (!IsExistDirectory(directoryPath)) 74 { 75 throw new FileNotFoundException(); 76 } 77 78 try 79 { 80 if (isSearchChild) 81 { 82 return Directory.GetFiles(directoryPath, searchPattern, SearchOption.AllDirectories); 83 } 84 else 85 { 86 return Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly); 87 } 88 } 89 catch (IOException ex) 90 { 91 throw ex; 92 } 93 } 94 #endregion 95 96 #region 检测指定目录是否为空 97 /// <summary> 98 /// 检测指定目录是否为空 99 /// </summary> 100 /// <param name="directoryPath">指定目录的绝对路径</param> 101 public static bool IsEmptyDirectory(string directoryPath) 102 { 103 try 104 { 105 //判断是否存在文件 106 string[] fileNames = GetFileNames(directoryPath); 107 if (fileNames.Length > 0) 108 { 109 return false; 110 } 111 112 //判断是否存在文件夹 113 string[] directoryNames = GetDirectories(directoryPath); 114 if (directoryNames.Length > 0) 115 { 116 return false; 117 } 118 119 return true; 120 } 121 catch 122 { 123 //这里记录日志 124 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 125 return true; 126 } 127 } 128 #endregion 129 130 #region 检测指定目录中是否存在指定的文件 131 /// <summary> 132 /// 检测指定目录中是否存在指定的文件,若要搜索子目录请使用重载方法. 133 /// </summary> 134 /// <param name="directoryPath">指定目录的绝对路径</param> 135 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 136 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 137 public static bool Contains(string directoryPath, string searchPattern) 138 { 139 try 140 { 141 //获取指定的文件列表 142 string[] fileNames = GetFileNames(directoryPath, searchPattern, false); 143 144 //判断指定文件是否存在 145 if (fileNames.Length == 0) 146 { 147 return false; 148 } 149 else 150 { 151 return true; 152 } 153 } 154 catch (Exception ex) 155 { 156 throw new Exception(ex.Message); 157 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 158 } 159 } 160 161 /// <summary> 162 /// 检测指定目录中是否存在指定的文件 163 /// </summary> 164 /// <param name="directoryPath">指定目录的绝对路径</param> 165 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 166 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 167 /// <param name="isSearchChild">是否搜索子目录</param> 168 public static bool Contains(string directoryPath, string searchPattern, bool isSearchChild) 169 { 170 try 171 { 172 //获取指定的文件列表 173 string[] fileNames = GetFileNames(directoryPath, searchPattern, true); 174 175 //判断指定文件是否存在 176 if (fileNames.Length == 0) 177 { 178 return false; 179 } 180 else 181 { 182 return true; 183 } 184 } 185 catch (Exception ex) 186 { 187 throw new Exception(ex.Message); 188 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 189 } 190 } 191 #endregion 192 193 #region 创建目录 194 /// <summary> 195 /// 创建目录 196 /// </summary> 197 /// <param name="dir">要创建的目录路径包括目录名</param> 198 public static void CreateDir(string dir) 199 { 200 if (dir.Length == 0) return; 201 if (!Directory.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir)) 202 Directory.CreateDirectory(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir); 203 } 204 #endregion 205 206 #region 删除目录 207 /// <summary> 208 /// 删除目录 209 /// </summary> 210 /// <param name="dir">要删除的目录路径和名称</param> 211 public static void DeleteDir(string dir) 212 { 213 if (dir.Length == 0) return; 214 if (Directory.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir)) 215 Directory.Delete(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir); 216 } 217 #endregion 218 219 #region 删除文件 220 /// <summary> 221 /// 删除文件 222 /// </summary> 223 /// <param name="file">要删除的文件路径和名称</param> 224 public static void DeleteFile(string file) 225 { 226 if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file)) 227 File.Delete(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file); 228 } 229 #endregion 230 231 #region 创建文件 232 /// <summary> 233 /// 创建文件 234 /// </summary> 235 /// <param name="dir">带后缀的文件名</param> 236 /// <param name="pagestr">文件内容</param> 237 public static void CreateFile(string dir, string pagestr) 238 { 239 dir = dir.Replace("/", "\\"); 240 if (dir.IndexOf("\\") > -1) 241 CreateDir(dir.Substring(0, dir.LastIndexOf("\\"))); 242 System.IO.StreamWriter sw = new System.IO.StreamWriter(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir, false, System.Text.Encoding.GetEncoding("GB2312")); 243 sw.Write(pagestr); 244 sw.Close(); 245 } 246 #endregion 247 248 #region 移动文件(剪贴--粘贴) 249 /// <summary> 250 /// 移动文件(剪贴--粘贴) 251 /// </summary> 252 /// <param name="dir1">要移动的文件的路径及全名(包括后缀)</param> 253 /// <param name="dir2">文件移动到新的位置,并指定新的文件名</param> 254 public static void MoveFile(string dir1, string dir2) 255 { 256 dir1 = dir1.Replace("/", "\\"); 257 dir2 = dir2.Replace("/", "\\"); 258 if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1)) 259 File.Move(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1, System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir2); 260 } 261 #endregion 262 263 #region 复制文件 264 /// <summary> 265 /// 复制文件 266 /// </summary> 267 /// <param name="dir1">要复制的文件的路径已经全名(包括后缀)</param> 268 /// <param name="dir2">目标位置,并指定新的文件名</param> 269 public static void CopyFile(string dir1, string dir2) 270 { 271 dir1 = dir1.Replace("/", "\\"); 272 dir2 = dir2.Replace("/", "\\"); 273 if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1)) 274 { 275 File.Copy(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1, System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir2, true); 276 } 277 } 278 #endregion 279 280 #region 根据时间得到目录名 / 格式:yyyyMMdd 或者 HHmmssff 281 /// <summary> 282 /// 根据时间得到目录名yyyyMMdd 283 /// </summary> 284 /// <returns></returns> 285 public static string GetDateDir() 286 { 287 return DateTime.Now.ToString("yyyyMMdd"); 288 } 289 /// <summary> 290 /// 根据时间得到文件名HHmmssff 291 /// </summary> 292 /// <returns></returns> 293 public static string GetDateFile() 294 { 295 return DateTime.Now.ToString("HHmmssff"); 296 } 297 #endregion 298 299 #region 复制文件夹 300 /// <summary> 301 /// 复制文件夹(递归) 302 /// </summary> 303 /// <param name="varFromDirectory">源文件夹路径</param> 304 /// <param name="varToDirectory">目标文件夹路径</param> 305 public static void CopyFolder(string varFromDirectory, string varToDirectory) 306 { 307 Directory.CreateDirectory(varToDirectory); 308 309 if (!Directory.Exists(varFromDirectory)) return; 310 311 string[] directories = Directory.GetDirectories(varFromDirectory); 312 313 if (directories.Length > 0) 314 { 315 foreach (string d in directories) 316 { 317 CopyFolder(d, varToDirectory + d.Substring(d.LastIndexOf("\\"))); 318 } 319 } 320 string[] files = Directory.GetFiles(varFromDirectory); 321 if (files.Length > 0) 322 { 323 foreach (string s in files) 324 { 325 File.Copy(s, varToDirectory + s.Substring(s.LastIndexOf("\\")), true); 326 } 327 } 328 } 329 #endregion 330 331 #region 检查文件,如果文件不存在则创建 332 /// <summary> 333 /// 检查文件,如果文件不存在则创建 334 /// </summary> 335 /// <param name="FilePath">路径,包括文件名</param> 336 public static void ExistsFile(string FilePath) 337 { 338 //if(!File.Exists(FilePath)) 339 //File.Create(FilePath); 340 //以上写法会报错,详细解释请看下文......... 341 if (!File.Exists(FilePath)) 342 { 343 FileStream fs = File.Create(FilePath); 344 fs.Close(); 345 } 346 } 347 #endregion 348 349 #region 删除指定文件夹对应其他文件夹里的文件 350 /// <summary> 351 /// 删除指定文件夹对应其他文件夹里的文件 352 /// </summary> 353 /// <param name="varFromDirectory">指定文件夹路径</param> 354 /// <param name="varToDirectory">对应其他文件夹路径</param> 355 public static void DeleteFolderFiles(string varFromDirectory, string varToDirectory) 356 { 357 Directory.CreateDirectory(varToDirectory); 358 359 if (!Directory.Exists(varFromDirectory)) return; 360 361 string[] directories = Directory.GetDirectories(varFromDirectory); 362 363 if (directories.Length > 0) 364 { 365 foreach (string d in directories) 366 { 367 DeleteFolderFiles(d, varToDirectory + d.Substring(d.LastIndexOf("\\"))); 368 } 369 } 370 371 372 string[] files = Directory.GetFiles(varFromDirectory); 373 374 if (files.Length > 0) 375 { 376 foreach (string s in files) 377 { 378 File.Delete(varToDirectory + s.Substring(s.LastIndexOf("\\"))); 379 } 380 } 381 } 382 #endregion 383 384 #region 从文件的绝对路径中获取文件名( 包含扩展名 ) 385 /// <summary> 386 /// 从文件的绝对路径中获取文件名( 包含扩展名 ) 387 /// </summary> 388 /// <param name="filePath">文件的绝对路径</param> 389 public static string GetFileName(string filePath) 390 { 391 //获取文件的名称 392 FileInfo fi = new FileInfo(filePath); 393 return fi.Name; 394 } 395 #endregion 396 397 #region 创建一个目录 398 /// <summary> 399 /// 创建一个目录 400 /// </summary> 401 /// <param name="directoryPath">目录的绝对路径</param> 402 public static void CreateDirectory(string directoryPath) 403 { 404 //如果目录不存在则创建该目录 405 if (!IsExistDirectory(directoryPath)) 406 { 407 Directory.CreateDirectory(directoryPath); 408 } 409 } 410 #endregion 411 412 #region 创建一个文件 413 /// <summary> 414 /// 创建一个文件。 415 /// </summary> 416 /// <param name="filePath">文件的绝对路径</param> 417 public static void CreateFile(string filePath) 418 { 419 try 420 { 421 //如果文件不存在则创建该文件 422 if (!IsExistFile(filePath)) 423 { 424 //创建一个FileInfo对象 425 FileInfo file = new FileInfo(filePath); 426 427 //创建文件 428 FileStream fs = file.Create(); 429 430 //关闭文件流 431 fs.Close(); 432 } 433 } 434 catch (Exception ex) 435 { 436 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 437 throw ex; 438 } 439 } 440 441 /// <summary> 442 /// 创建一个文件,并将字节流写入文件。 443 /// </summary> 444 /// <param name="filePath">文件的绝对路径</param> 445 /// <param name="buffer">二进制流数据</param> 446 public static void CreateFile(string filePath, byte[] buffer) 447 { 448 try 449 { 450 //如果文件不存在则创建该文件 451 if (!IsExistFile(filePath)) 452 { 453 //创建一个FileInfo对象 454 FileInfo file = new FileInfo(filePath); 455 456 //创建文件 457 FileStream fs = file.Create(); 458 459 //写入二进制流 460 fs.Write(buffer, 0, buffer.Length); 461 462 //关闭文件流 463 fs.Close(); 464 } 465 } 466 catch (Exception ex) 467 { 468 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message); 469 throw ex; 470 } 471 } 472 #endregion 473 474 #region 获取文本文件的行数 475 /// <summary> 476 /// 获取文本文件的行数 477 /// </summary> 478 /// <param name="filePath">文件的绝对路径</param> 479 public static int GetLineCount(string filePath) 480 { 481 //将文本文件的各行读到一个字符串数组中 482 string[] rows = File.ReadAllLines(filePath); 483 484 //返回行数 485 return rows.Length; 486 } 487 #endregion 488 489 #region 获取一个文件的长度 490 /// <summary> 491 /// 获取一个文件的长度,单位为Byte 492 /// </summary> 493 /// <param name="filePath">文件的绝对路径</param> 494 public static int GetFileSize(string filePath) 495 { 496 //创建一个文件对象 497 FileInfo fi = new FileInfo(filePath); 498 499 //获取文件的大小 500 return (int)fi.Length; 501 } 502 #endregion 503 504 #region 获取指定目录中的子目录列表 505 /// <summary> 506 /// 获取指定目录及子目录中所有子目录列表 507 /// </summary> 508 /// <param name="directoryPath">指定目录的绝对路径</param> 509 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 510 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 511 /// <param name="isSearchChild">是否搜索子目录</param> 512 public static string[] GetDirectories(string directoryPath, string searchPattern, bool isSearchChild) 513 { 514 try 515 { 516 if (isSearchChild) 517 { 518 return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.AllDirectories); 519 } 520 else 521 { 522 return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.TopDirectoryOnly); 523 } 524 } 525 catch (IOException ex) 526 { 527 throw ex; 528 } 529 } 530 #endregion 531 532 #region 向文本文件写入内容 533 534 /// <summary> 535 /// 向文本文件中写入内容 536 /// </summary> 537 /// <param name="filePath">文件的绝对路径</param> 538 /// <param name="text">写入的内容</param> 539 /// <param name="encoding">编码</param> 540 public static void WriteText(string filePath, string text, Encoding encoding) 541 { 542 //向文件写入内容 543 File.WriteAllText(filePath, text, encoding); 544 } 545 #endregion 546 547 #region 向文本文件的尾部追加内容 548 /// <summary> 549 /// 向文本文件的尾部追加内容 550 /// </summary> 551 /// <param name="filePath">文件的绝对路径</param> 552 /// <param name="content">写入的内容</param> 553 public static void AppendText(string filePath, string content) 554 { 555 File.AppendAllText(filePath, content); 556 } 557 #endregion 558 559 #region 将现有文件的内容复制到新文件中 560 /// <summary> 561 /// 将源文件的内容复制到目标文件中 562 /// </summary> 563 /// <param name="sourceFilePath">源文件的绝对路径</param> 564 /// <param name="destFilePath">目标文件的绝对路径</param> 565 public static void Copy(string sourceFilePath, string destFilePath) 566 { 567 File.Copy(sourceFilePath, destFilePath, true); 568 } 569 #endregion 570 571 #region 将文件移动到指定目录 572 /// <summary> 573 /// 将文件移动到指定目录 574 /// </summary> 575 /// <param name="sourceFilePath">需要移动的源文件的绝对路径</param> 576 /// <param name="descDirectoryPath">移动到的目录的绝对路径</param> 577 public static void Move(string sourceFilePath, string descDirectoryPath) 578 { 579 //获取源文件的名称 580 string sourceFileName = GetFileName(sourceFilePath); 581 582 if (IsExistDirectory(descDirectoryPath)) 583 { 584 //如果目标中存在同名文件,则删除 585 if (IsExistFile(descDirectoryPath + "\\" + sourceFileName)) 586 { 587 DeleteFile(descDirectoryPath + "\\" + sourceFileName); 588 } 589 //将文件移动到指定目录 590 File.Move(sourceFilePath, descDirectoryPath + "\\" + sourceFileName); 591 } 592 } 593 #endregion 594 595 596 #region 从文件的绝对路径中获取文件名( 不包含扩展名 ) 597 /// <summary> 598 /// 从文件的绝对路径中获取文件名( 不包含扩展名 ) 599 /// </summary> 600 /// <param name="filePath">文件的绝对路径</param> 601 public static string GetFileNameNoExtension(string filePath) 602 { 603 //获取文件的名称 604 FileInfo fi = new FileInfo(filePath); 605 return fi.Name.Split('.')[0]; 606 } 607 #endregion 608 609 #region 从文件的绝对路径中获取扩展名 610 /// <summary> 611 /// 从文件的绝对路径中获取扩展名 612 /// </summary> 613 /// <param name="filePath">文件的绝对路径</param> 614 public static string GetExtension(string filePath) 615 { 616 //获取文件的名称 617 FileInfo fi = new FileInfo(filePath); 618 return fi.Extension; 619 } 620 #endregion 621 622 #region 清空指定目录 623 /// <summary> 624 /// 清空指定目录下所有文件及子目录,但该目录依然保存. 625 /// </summary> 626 /// <param name="directoryPath">指定目录的绝对路径</param> 627 public static void ClearDirectory(string directoryPath) 628 { 629 if (IsExistDirectory(directoryPath)) 630 { 631 //删除目录中所有的文件 632 string[] fileNames = GetFileNames(directoryPath); 633 for (int i = 0; i < fileNames.Length; i++) 634 { 635 DeleteFile(fileNames[i]); 636 } 637 638 //删除目录中所有的子目录 639 string[] directoryNames = GetDirectories(directoryPath); 640 for (int i = 0; i < directoryNames.Length; i++) 641 { 642 DeleteDirectory(directoryNames[i]); 643 } 644 } 645 } 646 #endregion 647 648 #region 清空文件内容 649 /// <summary> 650 /// 清空文件内容 651 /// </summary> 652 /// <param name="filePath">文件的绝对路径</param> 653 public static void ClearFile(string filePath) 654 { 655 //删除文件 656 File.Delete(filePath); 657 658 //重新创建该文件 659 CreateFile(filePath); 660 } 661 #endregion 662 663 #region 删除指定目录 664 /// <summary> 665 /// 删除指定目录及其所有子目录 666 /// </summary> 667 /// <param name="directoryPath">指定目录的绝对路径</param> 668 public static void DeleteDirectory(string directoryPath) 669 { 670 if (IsExistDirectory(directoryPath)) 671 { 672 Directory.Delete(directoryPath, true); 673 } 674 } 675 #endregion 676 }
转载于:https://www.cnblogs.com/toloe/p/4630345.html
.NET 文件相关的所有操作相关推荐
- Linux中和文件相关的操作
Linux中和文件(/文件夹)相关的操作 1. 文件:删除.复制.移动.创建链接 2. 文件的解压 和 压缩 3. 文件:列举查看.大小查看.个数统计 3.1 `ls`:文件列举查看 3.2 `ls. ...
- Head First Python-Python中与文件相关的操作-读、处理、写
最近在看head first python,前面也写了一些笔记,但是基本上没有涉及到一些完整的代码,现在将书中的文件相关操作的代码整理,供以后参考. 主要分为两大部分,读取文件.处理异常,处理文件.存 ...
- Boost:与gz文件相关的操作实例
Boost:与gz文件相关的操作实例 实现功能 C++实现代码 实现功能 与gz文件相关的操作实例,打开,关闭,读写. C++实现代码 #include "zstream.h" # ...
- Linux命令(1)—— ls、pwd、tree、clear、文件相关操作
ls命令 查看当前目录信息 注意:ls后面可以跟几个选项 -l 是以列表方式显示,-h,可以显示文件大小,单位是字节,-a显示隐藏的文件或者目录,也可以三者任意组合连用 pwd 当前目录所在路径 tr ...
- R语言七天入门教程六:文件相关操作
R语言七天入门教程六:文件相关操作 一.文件的读写 R 语言作为统计学编程语言,常常需要处理大量数据,而这些数据通常会从文件中进行读取,因此文件读写在R语言中是非常重要的操作.在R语言中,用到最多的文 ...
- python的txt、csv、ini、xml、excel文件相关操作
python的txt.csv.ini.xml.excel文件相关操作 函数,一个用于专门实现某个功能的代码块(可重用) 内置函数 len.bin.oct.hex 等 自定义函数 # 定义了一个函数,功 ...
- linux账号管理命令,linux账号管理及相关命令和操作
用户和组 用户: 1:用户和UID对应 2:用户需要有权限才能读.写.执行其他用户的文件 组: 1:组和GID对应 2:用户需要加到组中 3:每个用户都有自己的默认组,可以附加到其他的组 4:同组的用 ...
- Word 2003文件保存和另存为操作是否熟练掌握的有关测试
提出问题 本文内容不仅适用于Word,对于其他的文档(文字.图形.动画.声音等)编辑软件基本通用. 对于操作上述各种编辑软件时,大家都应该注意到,我们第一次保存文件时系统出现的是"另存为&q ...
- JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载
文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...
- BS文件夹上传操作(二) ——基本功能实现
上篇<BS文件夹上传操作 >大概说明了我所需要的需求, 接着上次的命题: "如果有一个需求,要求你在BS上实现文件夹上传操作功能?你该如何实现?" ActiveX?J ...
最新文章
- Android 控件之ImageSwitcher图片切换器
- 产品运行所需的信息检索失败_禁煤后用什么替代锅炉?看看三种热源运行费用对比就知道了...
- mac 大写锁定延迟_延迟分析中的案例研究:锁定与同步
- 去除utf8文件的bom标记
- k-means算法实现python
- win10中通过docker安装sqlserver服务器的操作说明
- 如何写一个播放器-解析MNVideoPlayer(一)
- ps怎么转为html和css,一个登录界面的PS设计和HTML/CSS实现
- 解决:log4j警告:WARN Please initialize the log4j system properly
- 取消pycharm双击shift出现搜索框,但新版找不到ide.suppress.double.click.handler的问题解决
- deepin 服务器_深度官方并没有提供Deepin服务器版下载,也没有开发计划
- 猫咪藏在哪个房间python_盘点:猫咪玩“躲猫猫”喜欢藏的几个地方,这下再也不愁找不到了...
- 跨境电商亚马逊需要多少成本及运营亚马逊难吗
- Squid反向代理加速WEB
- 屏蔽博客园背景动态线条
- 【内有福利】5.7K画质高品质防抖:运动全景相机开启新纪元
- 和Vue来一场美丽的邂逅
- 编程计算某年某月某日是该年的第多少天。例如:2016年3月2日是2016的 第62 天。(java)
- 一个简单的软件测试流程(附带流程详解)
- 蓝桥杯 九宫重排 java_九宫重排--蓝桥杯国赛历年真题
热门文章
- python Process类
- python list()和[]的区别
- 使用tf.data.Dataset.from_tensor_slices五步加载数据集
- DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
- JSARToolKit5文档翻译
- 用java判断x奇或偶_改善java程序——用偶判断,不用奇判断
- Solana 海湾流(Gulf Stream)海平面(Sealevel)区别
- FISCO BCOS rpc端口、channel端口、p2p端口 怎么用是什么
- linux ubuntu apache php 网站 'page not found'
- 只写c语言,求助C语言大佬 , 只会写到一个.c文件里 ,不会用.h头文件