在windows应用程序中创建一个文本文件
问题描述:
我想打开一个文本文件并将一些数据写入文件。 这里是我的代码:在windows应用程序中创建一个文本文件
FileStream fs1 = new FileStream("D:\\Yourfile.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter writer = new StreamWriter(fs1);
writer.Write("Hello");
writer.Close();
System.Diagnostics.Process.Start(@"D:\\Yourfile.txt");
此代码的工作fine.But在这里第一次将文件保存得到。 我想要一个文本文件随数据一起打开并让用户保存文本文件。 这可能吗?
答
尝试,这将解决您的问题
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
private void button6_Click(object sender, EventArgs e)
{
Process[] notepads = Process.GetProcessesByName("notepad");
if (notepads.Length == 0)
{
Process.Start(@"notepad.exe");
Thread.Sleep(100);
}
notepads = Process.GetProcessesByName("notepad");
// return;
if (notepads[0] != null)
{
IntPtr child = FindWindowEx(notepads[0].MainWindowHandle, new IntPtr(0), "Edit", null);
SendMessage(child, 0x000C, 0, "Hello");
}
}
答
如果我正确理解你,你会希望你的程序打开记事本并在其中放置一些文本。然后,用户将决定文件是否被保存。
如果是这样,您可以使用Process
类启动记事本。一旦你这样做,你can fire a series of keyboard events(模仿键),让你有文字。
这就是说,我认为可能是一个更清洁的解决方案将打开一个单独的窗体与文本区域/文本框,以便用户可以通读。然后,有一个名为Save
的按钮,它基本上做你已经做的事情。
答
如果您希望用户为该文件提供文本,请使用单个文本框构建Windows窗体。让任何他们想要的用户类型,当你做,这样做:
File.WriteAllText(pathToFile, textBox.Text);
你什么意思,你想用文本文件打开沿数据? –
@neoistheone我认为OP希望记事本弹出并输入文本,但尚未保存。 – ispiro
对不起,我的意思是在文本文件里写一些文字。 – Priyanka