我使用SaveFileDialog
來選擇我想要保存文件的路徑。我將InitialDirectory
設置爲某個文件夾,但我想將保存位置限制爲該文件夾或該文件夾的子文件夾。這可能嗎?特定文件夾中的C#SaveFileDialog
SaveFileDialog dialog = new SaveFileDialog();
dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder
我使用SaveFileDialog
來選擇我想要保存文件的路徑。我將InitialDirectory
設置爲某個文件夾,但我想將保存位置限制爲該文件夾或該文件夾的子文件夾。這可能嗎?特定文件夾中的C#SaveFileDialog
SaveFileDialog dialog = new SaveFileDialog();
dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder
不,這是不可能的。
您不能直接將其設置爲SaveFileDialog
上的屬性。但是您可以嘗試使用FileOk
事件來驗證文件是否位於該目錄中,否則將取消該事件!
dialog.FileOk +=
delegate (object sender, CancelEventArgs e)
{
if (dialog.FileName is in wrong directory)
{
e.Cancel = true;
}
};
如前所述,下一個最佳選擇是建立自己的對話框!
我不想取消用戶是否從其他文件夾中選擇文件,我不想讓他選擇其他文件夾。 – Felics 2012-01-09 13:46:14
您只會取消選擇,您不會取消對話框。 – Kolky 2012-01-09 13:47:34
這是一個非常有用的答案,謝謝。 – MikeMalter 2013-09-05 23:56:35
浮現在腦海中的一些解決方案是:
顯示文件選擇後一個錯誤
不是像你一樣防止用戶在首位,但它並不需要很多的代碼而且非常簡單。
建立自己的文件選擇畫面
非常痛苦,使看起來像任何的用戶習慣。需要大量的代碼。
我能想到的可能是題外話題,因爲它與編程沒有多大關係,可能很難。
當您正在安裝應用程序時,您應該在Windows上爲您的應用程序創建一個特定用戶。
比你可以開始你的應用程序。作爲使用App的用戶。清單文件。
之後,您可以授予該特定用戶權限僅寫入根文件夾,操作系統將如何控制該權限。 PS:我不認爲如果這個解決方案會自己支付,但它可能工作。
禮炮
很抱歉,但我不能想到一個情況下,這應該是有用的。 要麼讓用戶控制要保存的位置,要麼保存文件。 你能解釋一下你爲什麼要這樣做嗎? – M0rgenstern 2012-01-09 13:41:06
我有一個編輯器用於編輯包中的文件(它將被複制到設備中)。我不想讓用戶能夠將文件保存在其他文件夾中 - 它們不會在最後被複制,這可能會導致奇怪的錯誤。 – Felics 2012-01-09 13:53:52