如何在动态选择的文件夹上创建txt文件

时间:2012-01-17 15:37:58

标签: c# file

您好,感谢您阅读我的问题。我有一个字符串,我需要放在一个txt文件。

我想这样做,以便当用户点击按钮时,它会询问文件夹,用户想要保存此txt文件,并在文件夹中生成它。

这是我制作的一些代码,但我不知道如何制作它以便用户选择文件夹。

private void Generar_Txt_Disco(string s_content, string s_folder)
{
        //Ruta es donde se va a guardar
        StreamWriter sr = new StreamWriter(s_folder);
        //Vas escribiendo el texto
        sr.WriteLine(s_content);
        //Lo cierras        
        sr.Close();           
}

3 个答案:

答案 0 :(得分:4)

描述

使用SaveFileDialogFolderBrowserDialog。 (System.Windows.Forms成员)

  

SaveFileDialog 提示用户选择保存文件的位置。这个类不能被继承。

     

FolderBrowserDialog 提示用户选择文件夹。这个类不能被继承。

FolderBrowserDialog

的示例
private static void Generar_Txt_Disco(string s_content)
{
    using (FolderBrowserDialog dialog = new FolderBrowserDialog()) 
    {
        if (dialog.ShowDialog()) == DialogResult.OK)
        {
           //Ruta es donde se va a guardar
            StreamWriter sr = new StreamWriter(dialog.SelectedPath + "\\YourFileName.txt");
            //Vas escribiendo el texto
            sr.WriteLine(s_content);
            //Lo cierras        
            sr.Close();
        }
    }
}

SaveFileDialog的样本

private static void Generar_Txt_Disco(string s_content)
{
    using (SaveFileDialog dialog = new SaveFileDialog()) 
    {
        dialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";

        if (dialog.ShowDialog()) == DialogResult.OK)
        {
            //Ruta es donde se va a guardar
            StreamWriter sr = new StreamWriter(dialog.FileName);
            //Vas escribiendo el texto
            sr.WriteLine(s_content);
            //Lo cierras        
            sr.Close();
        }
    }
}

更多信息

答案 1 :(得分:1)

这样的东西
using (SaveFileDialog sfd = new SaveFileDialog ())
{
  if (sfd.ShowDialog() == DialogResult.OK)
  {
    //contains the path the user picked
    string filepathToSave = sfd.FileName;

    using (StreamWriter file = new StreamWriter(filepathToSave ))
      {
         file.WriteLine("foo");
      }
  }
}

答案 2 :(得分:0)

    public static string GetAnyPath(string fileName)
    {
                //my path where i want my file to be created is : "C:\\Users\\{my-system-name}\\Desktop\\Me\\create-file\\CreateFile\\CreateFile\\FilesPosition\\firstjson.json"
                var basePath = new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath.Split(new string[] { "\\CreateFile" }, StringSplitOptions.None)[0];
                var filePath = Path.Combine(basePath, $"CreateFile\\CreateFile\\FilesPosition\\{fileName}.json");
                return filePath;
    }

根据需要用任何类型替换.json 也可以参考https://github.com/swinalkm/create-file/tree/main/CreateFile/CreateFile 以获得完整的代码