C# 跨盤符移動檔案

來源:互聯網
上載者:User

標籤:

寫移動檔案練習時候發現Directory.move只能在同一個盤符進行操作,於是度娘一下,還真有人也遇到這種情況,搜尋一番發現一位仁兄寫的一個跨盤符移動的demo很好分享一下,原文如下:

 1 public void MoveDirectory(string strSourceDir, string strDestDir, bool bDelSource) 2         { 3             if (Directory.Exists(strSourceDir)) 4             { 5                 if (Directory.GetDirectoryRoot(strSourceDir) == Directory.GetDirectoryRoot(strDestDir)) 6                 { 7                     Directory.Move(strSourceDir, strDestDir); 8                 } 9                 else10                 {11                     try12                     {13                         CopyDirectory(new DirectoryInfo(strSourceDir), new DirectoryInfo(strDestDir));14                         if (bDelSource) Directory.Delete(strSourceDir, true);15                     }16                     catch (Exception subEx)17                     {18                         throw subEx;19                     }20                 }21             }22         }23         private void CopyDirectory(DirectoryInfo diSourceDir, DirectoryInfo diDestDir)24         {25             if (!diDestDir.Exists) diDestDir.Create();26             FileInfo[] fiSrcFiles = diSourceDir.GetFiles();27             foreach (FileInfo fiSrcFile in fiSrcFiles)28             {29                 fiSrcFile.CopyTo(Path.Combine(diDestDir.FullName, fiSrcFile.Name));30             }31             DirectoryInfo[] diSrcDirectories = diSourceDir.GetDirectories();32             foreach (DirectoryInfo diSrcDirectory in diSrcDirectories)33             {34                 CopyDirectory(diSrcDirectory, new DirectoryInfo(Path.Combine(diDestDir.FullName, diSrcDirectory.Name)));35             }36         }37         private void button1_Click(object sender, EventArgs e)38         {39             //MoveFolder1();40             string sNowFile = System.Windows.Forms.Application.StartupPath + "\\seo";41             string sNFile = Environment.SystemDirectory.Replace("system32", "");42             MoveDirectory(sNowFile, sNFile, true);43         }

簡簡單單代碼讓人豁然開朗,其實我們可以換個角度,他進行的是建立路徑去遍曆源地址檔案複製到目的地址,然後刪除原檔案。這樣就解決了,代碼很容易懂贊一下!

C# 跨盤符移動檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.