ncostasilva Ответов: 3

Создайте папку и сохраните в ней файл C#


Здравствуйте Коллеги,

Я просто новичок в этом программировании, занимаюсь просто для удовольствия и самообучения.
Я создаю папку a и файл excel каждый раз, когда запускаю свою программу, и она работает просто отлично.
Но я не могу найти способ сохранить этот файл excel в своей папке.

Я хотел бы создать свою папку и сохранить в ней файл excel, конечно, имя моей папки будет каждый раз отличаться.

есть идеи? Большое спасибо.

Заранее большое спасибо.

Что я уже пробовал:

Каталог.CreateDirectory("c:\\temp\\" + имя папки.Текст);

лист.Савеас("c:\\Temp\\" + excelname.Текст + Датавремя.Сейчас.Метод toString("_ггггммдд"));

Richard Deeming

Репост
Вы уже опубликовали это сообщение:
Как создать папку для сохранения моего файла excel внутри этой папки с помощью C#[^]

Если вы хотите обновить свой вопрос, чтобы добавить недостающую информацию, Нажмите зеленую ссылку "улучшить вопрос" и обновите свой вопрос. Не опубликуйте свое обновление как новый вопрос.

3 Ответов

Рейтинг:
5

ncostasilva

Привет,

Другой коллега предложил решение, которое хорошо работало для моего приложения, пожалуйста, смотрите код ниже.

строка foldername = имя папки.Текст;
строка myDir = @"c:\temp";
строка dirPath = путь.Combine(myDir, foldername);
System.IO.Directory.CreateDirectory(dirPath);


//Конкретно здесь, где репортер должен быть сохранен

лист.Сохранить Как(Путь.Combine(dirPath, excelname.Текст + Датавремя.Сейчас.Метод toString("_ггггммдд")));


Richard Deeming

Вы забыли отправить какой-либо код.

ncostasilva

Извините, но теперь код опубликован. извиняюсь

Рейтинг:
2

BillWoodruff

Это может быть так простой как это:

using System.IO;

namespace WFTemplate_Aug2020
{
    public static class public_static_class_FileExtensions
    {
        public static FileStream NewFile(this string folderpath, string filename, string extension)
        {
           return File.Create($"{folderpath}{filename}{extension}");
        }
    }
}
Пример вызова:
FileStream fs = @"C:\Users\test_user\Desktop\New Stuff\".NewFile("xray", ".txt");
Однако:

0 этот код будет записан поверх существующего файла с тем же именем и путем

1 этот код не будет перехватывать возможные ошибки в доступе к файлам, такие как "отказано в разрешении" или файл, существующий и доступный только для чтения.

2 здесь нет проверки на легкость ошибок при использовании разделителей путей к файлам // и нет проверки существующих допустимых имен структур каталогов.

Смотрите другие возможные исключения здесь: [^]

"Код реального мира" требует от вас решения этих проблем !

Другие ответы здесь показывают вам, как проверить наличие существующего каталога.


0x01AA

Что-то излишнее для новичка c#, а также в противном случае. С другой стороны, хороший/интересный пример для объяснения расширений. Так что берите 5.

Sandeep Mewara

Возьми мои 5! :большой палец вверх:

Рейтинг:
2

Sandeep Mewara

Конечно, вы можете сделать это с помощью Каталог.Метод CreateDirectory (System.IO) | Microsoft Docs[^]

Образец:

public class CreateFileOrFolder
{
    static void Main()
    {
        // Specify a name for your top-level folder.
        string folderName = @"c:\Top-Level Folder";

        // To create a string that specifies the path to a subfolder under your
        // top-level folder, add a name for the subfolder to folderName.
        string pathString = System.IO.Path.Combine(folderName, "SubFolder");

        // You can write out the path name directly instead of using the Combine
        // method. Combine just makes the process easier.
        string pathString2 = @"c:\Top-Level Folder\SubFolder2";

        // You can extend the depth of your path if you want to.
        //pathString = System.IO.Path.Combine(pathString, "SubSubFolder");

        // Create the subfolder. You can verify in File Explorer that you have this
        // structure in the C: drive.
        //    Local Disk (C:)
        //        Top-Level Folder
        //            SubFolder
        System.IO.Directory.CreateDirectory(pathString);

        // Create a file name for the file you want to create.
        string fileName = System.IO.Path.GetRandomFileName();

        // This example uses a random string for the name, but you also can specify a particular name.
        //string fileName = "MyNewFile.xls";

        // Use Combine again to add the file name to the path.
        pathString = System.IO.Path.Combine(pathString, fileName);

        // Verify the path that you have constructed.
        Console.WriteLine("Path to my file: {0}\n", pathString);

        // Check that the file doesn't already exist. If it doesn't exist, create
        // the file and write integers 0 - 99 to it.
        // DANGER: System.IO.File.Create will overwrite the file if it already exists.
        // This could happen even with random file names, although it is unlikely.
        if (!System.IO.File.Exists(pathString))
        {
            using (System.IO.FileStream fs = System.IO.File.Create(pathString))
            {
                for (byte i = 0; i < 100; i++)
                {
                    fs.WriteByte(i);
                }
            }
        }
    }
    // Sample output:
    // Path to my file: c:\Top-Level Folder\SubFolder\ttxvauxe.vv0
}

Ссылка: Как создать файл или папку - руководство по программированию на C# | Microsoft Docs[^]

Пожалуйста, попробуйте пример. Почти все это есть то, чем вы делились.


BillWoodruff

+4

Sandeep Mewara

Спасибо!