台灣最大程式設計社群網站
線上人數
1510
 
會員總數:246690
討論主題:190103
歡迎您免費加入會員
討論區列表 >> C# >> 發生例外情況停止程式執行
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
發生例外情況停止程式執行
價值 : 10 QP  點閱數:840 回應數:3
樓主

PTY
門外漢
0 2
24 4
發送站內信

各位高手您好

我現在用在做一個複製資料夾程式

我需要複製多個不同路徑的資料夾到同一個路徑下

下面這是我從網路上找的 複製目錄的方法

private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
{
// Get the subdirectories for the specified directory.
DirectoryInfo dir = new DirectoryInfo(sourceDirName);

if (!dir.Exists)
{
throw new DirectoryNotFoundException(
"Source directory does not exist or could not be found: "
+ sourceDirName);
}

DirectoryInfo[] dirs = dir.GetDirectories();
// If the destination directory doesn't exist, create it.
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}

// Get the files in the directory and copy them to the new location.
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
string temppath = Path.Combine(destDirName, file.Name);
file.CopyTo(temppath, false);
}

// If copying subdirectories, copy them and their contents to new location.
if (copySubDirs)
{
foreach (DirectoryInfo subdir in dirs)
{
string temppath = Path.Combine(destDirName, subdir.Name);
DirectoryCopy(subdir.FullName, temppath, copySubDirs);
}
}
}


上面 if (!dir.Exists) 會跳出錯誤訊息並且告知

"Source directory does not exist or could not be found: "+ sourceDirName

我想要去改寫成 如果沒有發現某個複製source資料夾的路徑或是有路徑有問題的話

那我就要立即停止程式執行
假設: A B C D 為四個source資料夾的路徑

我要複製到的資料夾為 E:\test

當我依序複製到 C 這個資料夾時發現C的路徑有問題

那我要如何去停止程式執行並且跳出Form2

且不會繼續複製D這個資料夾

請問應該如何改寫

拜託各位高手不吝嗇指教初學者 感謝!

搜尋相關Tags的文章: [ Winform ] ,
本篇文章發表於2018-03-21 14:41
1樓
回應

春天
檢舉此回應
暴力破解

本篇文章回覆於2018-03-21 17:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

春天
檢舉此回應
抱歉,throw之後不會執行到下一行
總之在調用此方法時得知複製失敗可以用Form.Close()關閉Form
本篇文章回覆於2018-03-21 17:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

lightyen
檢舉此回應


本篇文章回覆於2018-03-28 15:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.