C#法式中創立、復制、挪動、刪除文件或文件夾的示例。本站提示廣大學習愛好者:(C#法式中創立、復制、挪動、刪除文件或文件夾的示例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#法式中創立、復制、挪動、刪除文件或文件夾的示例正文
創立文件或文件夾
您可經由過程編程方法在您的盤算機上創立文件夾、子文件夾和子文件夾中的文件,並將數據寫入文件。
public class CreateFileOrFolder { static void Main() { string folderName = @"c:\Top-Level Folder"; string pathString = System.IO.Path.Combine(folderName, "SubFolder"); string pathString2 = @"c:\Top-Level Folder\SubFolder2"; System.IO.Directory.CreateDirectory(pathString); string fileName = System.IO.Path.GetRandomFileName(); pathString = System.IO.Path.Combine(pathString, fileName); Console.WriteLine("Path to my file: {0}\n", pathString); if (!System.IO.File.Exists(pathString)) { using (System.IO.FileStream fs = System.IO.File.Create(pathString)) { for (byte i = 0; i < 100; i++) { fs.WriteByte(i); } } } else { Console.WriteLine("File \"{0}\" already exists.", fileName); return; } try { byte[] readBuffer = System.IO.File.ReadAllBytes(pathString); foreach (byte b in readBuffer) { Console.Write(b + " "); } Console.WriteLine(); } catch (System.IO.IOException e) { Console.WriteLine(e.Message); } System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); } }
輸入:
Path to my file: c:\Top-Level Folder\SubFolder\ttxvauxe.vv0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 8 3 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
假如該文件夾已存在,則 CreateDirectory 不履行任何操作,且不會激發異常。然則,File.Create 用新的文件調換現有文件。該示例應用一個 if-else 語句阻攔現有文件被調換。
經由過程在示例中做出以下更改,您可以依據具有某個稱號的法式能否存在來指定分歧的成果。假如該文件不存在,代碼將創立一個文件。假如該文件存在,代碼將把數據添加到該文件中。
指定一個非隨機文件名。
// Comment out the following line. //string fileName = System.IO.Path.GetRandomFileName(); // WordStr that line with the following assignment. string fileName = "MyNewFile.txt";
用以下代碼中的 using 語句調換 if-else 語句。
using (System.IO.FileStream fs = new System.IO.FileStream(pathString, FileMode.Append)) { for (byte i = 0; i < 100; i++) { fs.WriteByte(i); } }
運轉該示例若干次以驗證數據能否每次都添加到文件中。
復制、刪除和挪動文件和文件夾
以下示例解釋若何應用 System.IO 定名空間中的 System.IO.File、System.IO.Directory、System.IO.FileInfo 和 System.IO.DirectoryInfo 類以同步方法復制、挪動和刪除文件和文件夾。 這些示例沒有供給進度欄或其他任何用戶界面。
。
示例
上面的示例演示若何復制文件和目次。
public class SimpleFileCopy { static void Main() { string fileName = "test.txt"; string sourcePath = @"C:\Users\Public\TestFolder"; string targetPath = @"C:\Users\Public\TestFolder\SubDir"; // Use Path class to manipulate file and directory paths. string sourceFile = System.IO.Path.Combine(sourcePath, fileName); string destFile = System.IO.Path.Combine(targetPath, fileName); // To copy a folder's contents to a new location: // Create a new target folder, if necessary. if (!System.IO.Directory.Exists(targetPath)) { System.IO.Directory.CreateDirectory(targetPath); } // To copy a file to another location and // overwrite the destination file if it already exists. System.IO.File.Copy(sourceFile, destFile, true); // To copy all the files in one directory to another directory. // Get the files in the source folder. (To recursively iterate through // all subfolders under the current directory, see // "How to: Iterate Through a Directory Tree.") // Note: Check for target path was performed previously // in this code example. if (System.IO.Directory.Exists(sourcePath)) { string[] files = System.IO.Directory.GetFiles(sourcePath); // Copy the files and overwrite destination files if they already exist. foreach (string s in files) { // Use static Path methods to extract only the file name from the path. fileName = System.IO.Path.GetFileName(s); destFile = System.IO.Path.Combine(targetPath, fileName); System.IO.File.Copy(s, destFile, true); } } else { Console.WriteLine("Source path does not exist!"); } // Keep console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } }
上面的示例演示若何挪動文件和目次。
public class SimpleFileMove { static void Main() { string sourceFile = @"C:\Users\Public\public\test.txt"; string destinationFile = @"C:\Users\Public\private\test.txt"; // To move a file or folder to a new location: System.IO.File.Move(sourceFile, destinationFile); // To move an entire directory. To programmatically modify or combine // path strings, use the System.IO.Path class. System.IO.Directory.Move(@"C:\Users\Public\public\test\", @"C:\Users\Public\private"); } }
上面的示例演示若何刪除文件和目次。
public class SimpleFileDelete { static void Main() { // Delete a file by using File class static method... if(System.IO.File.Exists(@"C:\Users\Public\DeleteTest\test.txt")) { // Use a try block to catch IOExceptions, to // handle the case of the file already being // opened by another process. try { System.IO.File.Delete(@"C:\Users\Public\DeleteTest\test.txt"); } catch (System.IO.IOException e) { Console.WriteLine(e.Message); return; } } // ...or by using FileInfo instance method. System.IO.FileInfo fi = new System.IO.FileInfo(@"C:\Users\Public\DeleteTest\test2.txt"); try { fi.Delete(); } catch (System.IO.IOException e) { Console.WriteLine(e.Message); } // Delete a directory. Must be writable or empty. try { System.IO.Directory.Delete(@"C:\Users\Public\DeleteTest"); } catch (System.IO.IOException e) { Console.WriteLine(e.Message); } // Delete a directory and all subdirectories with Directory static method... if(System.IO.Directory.Exists(@"C:\Users\Public\DeleteTest")) { try { System.IO.Directory.Delete(@"C:\Users\Public\DeleteTest", true); } catch (System.IO.IOException e) { Console.WriteLine(e.Message); } } // ...or with DirectoryInfo instance method. System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\Users\Public\public"); // Delete this dir and all subdirs. try { di.Delete(true); } catch (System.IO.IOException e) { Console.WriteLine(e.Message); } } }