當執行下面的代碼時,我希望彈出一個警告對話框,它會詢問我是否確定要覆蓋文件,但是沒有彈出窗口。有誰知道一個簡單的方法來實現它?無需創建自己的自定義窗口導出一個.txt文件,不會出現覆蓋警告
XAML:
<Grid>
<TextBox x:Name="name" Text="hi" />
<Button x:Name="create_File" Click="create_File_Click" Content="make the notepad" Width="auto"/>
</Grid>
C#:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public void createFile()
{
string text_line = string.Empty;
string exportfile_name = "C:\\" + name.Text + ".txt";
System.IO.StreamWriter objExport;
objExport = new System.IO.StreamWriter(exportfile_name);
string[] TestLines = new string[2];
TestLines[0] = "****TEST*****";
TestLines[1] = "successful";
for (int i = 0; i < 2; i++)
{
text_line = text_line + TestLines[i] + "\r\n";
objExport.WriteLine(TestLines[i]);
}
objExport.Close();
MessageBox.Show("Wrote File");
}
private void create_File_Click(object sender, RoutedEventArgs e)
{
createFile();
}
}
UPDATE我沒有使用SaveFileDialog
,現在我和它我的工作方式也是如此......感謝答案,這裏是我現在擁有的:
public void createFile()
{
string text_line = string.Empty;
string export_filename = name.Text;
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = export_filename; // Default file name
dlg.DefaultExt = ".text"; // Default file extension
dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension
// Show save file dialog box
Nullable<bool> result = dlg.ShowDialog();
// save file
System.IO.StreamWriter objExport;
objExport = new System.IO.StreamWriter(dlg.FileName);
string[] TestLines = new string[2];
TestLines[0] = "****TEST*****";
TestLines[1] = "successful";
for (int i = 0; i < 2; i++)
{
text_line = text_line + TestLines[i] + "\r\n";
objExport.WriteLine(TestLines[i]);
}
objExport.Close();
}
private void create_File_Click(object sender, RoutedEventArgs e)
{
createFile();
}
}
爲什麼你會希望出現一個確認對話框休息嗎?你需要自己處理這個邏輯......另外,你需要將你的流包裝在一個「使用」塊中 – musefan
你爲什麼期望?您正在使用'StreamWriter'直接寫入文件,這只是一個類而不是UI元素。 'SaveFileDialog'將在選擇現有文件時要求確認,但對於'StreamWriter',這根本沒有任何意義(否則沒有UI的應用程序永遠不能使用'StreamWriter')。 – bassfader
@ 2以上,嗯好吧好吧謝謝你的答案 – JohnChris