2012-01-09 83 views
10

我使用SaveFileDialog來選擇我想要保存文件的路徑。我將InitialDirectory設置爲某個文件夾,但我想將保存位置限制爲該文件夾或該文件夾的子文件夾。這可能嗎?特定文件夾中的C#SaveFileDialog

SaveFileDialog dialog = new SaveFileDialog(); 
dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder 
+0

很抱歉,但我不能想到一個情況下,這應該是有用的。 要麼讓用戶控制要保存的位置,要麼保存文件。 你能解釋一下你爲什麼要這樣做嗎? – M0rgenstern 2012-01-09 13:41:06

+1

我有一個編輯器用於編輯包中的文件(它將被複制到設備中)。我不想讓用戶能夠將文件保存在其他文件夾中 - 它們不會在最後被複制,這可能會導致奇怪的錯誤。 – Felics 2012-01-09 13:53:52

回答

9

不,這是不可能的。

您不能直接將其設置爲SaveFileDialog上的屬性。但是您可以嘗試使用FileOk事件來驗證文件是否位於該目錄中,否則將取消該事件!

dialog.FileOk += 
    delegate (object sender, CancelEventArgs e) 
    { 
     if (dialog.FileName is in wrong directory) 
     { 
      e.Cancel = true; 
     } 
    }; 

如前所述,下一個最佳選擇是建立自己的對話框!

+0

我不想取消用戶是否從其他文件夾中選擇文件,我不想讓他選擇其他文件夾。 – Felics 2012-01-09 13:46:14

+1

您只會取消選擇,您不會取消對話框。 – Kolky 2012-01-09 13:47:34

+0

這是一個非常有用的答案,謝謝。 – MikeMalter 2013-09-05 23:56:35

0

浮現在腦海中的一些解決方案是:

顯示文件選擇後一個錯誤

不是像你一樣防止用戶在首位,但它並不需要很多的代碼而且非常簡單。

建立自己的文件選擇畫面

非常痛苦,使看起來像任何的用戶習慣。需要大量的代碼。

0

我能想到的可能是題外話題,因爲它與編程沒有多大關係,可能很難。

當您正在安裝應用程序時,您應該在Windows上爲您的應用程序創建一個特定用戶。

比你可以開始你的應用程序。作爲使用App的用戶。清單文件。

之後,您可以授予該特定用戶權限僅寫入根文件夾,操作系統將如何控制該權限。 PS:我不認爲如果這個解決方案會自己支付,但它可能工作。

禮炮

相關問題