2011-04-01 33 views
1

我想停止使用Windows API方法調用在SaveFileDialog上彈出文件替換對話框。 我只是想,因爲我創建一個新的文件夾與用戶指定的文件名要做到這一點,因而具有相同名稱的另一個文件的exsistance是不是一個問題?如何使用GetSaveFileName創建SaveFileDialog時停止overwriteprompt

其實我創建savefiledialog使用Windows功能 - 則GetSaveFileName怎麼我已經定製使用HOOKPROC對話框......請回答,如果有人知道...

感謝

+0

小心顯示目前爲止您所擁有的? – SeeSharp 2011-04-01 11:46:01

+1

如果它提示你替換文件,那麼存在另一個具有相同名稱的文件,IS就是這個問題。 – 2011-04-01 11:46:49

+0

不,實際上我想用用戶給出的文件名創建一個文件夾,因爲我必須保存文件數量(根據我的應用程序不同的模式),最好將它們保存在一個文件夾中......謝謝 – 2011-04-01 11:49:58

回答

2

其實我終於找到我的問題的解決,我想,因爲我認爲它可能是有用的人在這裏把它...

使用則GetSaveFileName的Windows函數創建SaveFileDialog,我們要發送對OPENFILENAME結構的引用(將其視爲ofn),其中包含創建savefiledialog所需的詳細信息。在這個結構中,我們必須爲我們需要的標誌設置標誌,因此如果我們想停止覆蓋提示,我們不應該爲它設置一個標誌:

標誌設置應該是onn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_NOTESTFILECREATE | OFN_ENABLEHOOK | OFN_HIDEREADONLY;

而不是

ofn。標誌= OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_NOTESTFILECREATE | OFN_ENABLEHOOK | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;

0

從.NET SDK:

SaveFileDialog類

...

屬性

...

OverwritePrompt - 獲取或設置指示 另存爲對話框是否顯示,如果 用戶指定一個已經存在的文件名的警告值。

您可以將對話框的屬性設置爲false以禁用覆蓋提示。

2

試試這個:

SaveFileDialog dialog = new SaveFileDialog(); 
dialog.OverwritePrompt = false; //Removes warning 
dialog.ShowDialog(); 
2

我會更新這個,如果我誤解你問(我很抱歉,如果我有,如果你提供你當前的代碼 但是,你可以。這樣做:

yourSaveFileDialog.OverwritePrompt = false; 

打壓覆蓋提示

0

可以OverwritePrompt屬性設置爲false,像這樣:

SaveFileDialog dialog = new SaveFileDialog(); 
dialog.OverwritePrompt = false; 
dialog.ShowDialog(); 
+0

@dia您可以擁有相同的文件和文件夾名稱,因此替換對話框不應彈出。檢查該文件夾中是否已有相同的文件名 – Vale 2011-04-01 11:56:44

1

聲音對我說,你實際上希望用戶挑選文件夾,以便你可以接着用文件填充它。在這種情況下,你應該使用FolderBrowserDialog。它旨在讓用戶選擇一個文件夾。

相關問題