Member 14355624 Ответов: 2

Как мне установить имя файла which , SQL extension C#


У меня есть данные в richedTextBox, я записываю данные в файл. И файл создается автоматически. Но созданный файл будет хардированным именем файла, я хочу, чтобы это было имя, которое я даю в Textbox1.Text

Я ввел текстовое поле 1 как студент

Строка ст = текстовое поле textbox1.текст.метод toString();

string savefilepath = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.FullName, "demo.sql");


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

Цитата:
Предположим, я ввожу textbox1.text как "student", тогда файл должен быть помечен расширением student.sql. я передаю student в качестве имени файла в качестве filename.sql

Richard MacCutchan

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

PIEBALDconsult

Слушайте, слушайте!

2 Ответов

Рейтинг:
2

F-ES Sitecore

String st = textbox1.text.toString();

string savefilepath = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.FullName, st + ".sql");


Member 14355624

Не работает братан, я попробовал твой код F-ES Sitecore

0x01AA

"не работает" - это не информация, братан! Пожалуйста, объясните подробнее, чего вы ожидаете и что получаете...

PIEBALDconsult

текстовое поле textbox1.текст.метод toString() является излишним.

Рейтинг:
0

Dave Kreskowiak

Во - первых, с какой стати ты звонишь .ToString() на a .Свойство text, которое возвращает строку!?

Далее, CurrentDirectory не должен использоваться ни для чего, так как он может измениться без вашего ведома. Например, покажите OpenFileDialog, и вы позволите пользователю напрямую изменить "текущий каталог", просто перейдя в файловую систему в этом диалоговом окне. Им даже не нужно выбирать файл для открытия! Это не единственный способ изменения "текущего каталога", а лишь один из примеров того, как это возможно.

Еще одна проблема с CurrentDirectory заключается в том, что он может указывать на папку, в которой пользователь вашего приложения не имеет прав на создание/запись файла, например в разделе ProgramFiles.

В любом случае, вы, по крайней мере, создаете полный путь к файлу, и это хорошо. То, как вы это делаете, в одной строке кода может привести к проблемам. Разбейте эти операции на блоки отладочного кода.

string filename = textbox1.Text;
if (filename.Length == 0)
{
    // There's nothing in the textbox, so no filename was specified.
    // You might want to tell the user that.
}

// Does the path already have a file extension?
if (!Path.HasExtension(filename))
{
    // Nope. We'll append our own.
    filename += ".sql";
}

// Start with a "well-known" path.
string saveFilePath = Environment.GetFolderPath(SpecialFolder.CommonDocuments);

saveFilePath = Path.Combine(saveFilePath, filename);

Разбивая операции, создающие путь, вы можете пошагово Просмотреть код, чтобы увидеть данные, с которыми имеет дело каждая операция, просто наведя курсор мыши на переменную в отладчике при пошаговом просмотре кода.


Member 14355624

Файл должен быть создан с именем, которое я передаю в textbox1 .в SQL extesnion

строка tableName = texttablename.Текст;

строка file_path = "C:\\Users\\vas\\Desktop\\";

строка saveFilePath = путь.Комбинат(путь_к_файлу,имятаблицы);
TextWriter wr = новый StreamWriter(saveFilePath);
водонепроницаемые.Писать(combinedscript.Текст);
водонепроницаемые.Рядом();

Dave Kreskowiak

Ну и что?

Просто отредактируйте то, что я опубликовал, чтобы добавить расширение ".sql" к имени файла, если оно еще не существует. Манипуляции со строками очень просты и еще более упрощаются методами, предоставляемыми классом Path.

Aaaaannndddd вы можете легко получить путь к папке рабочего стола пользователя с помощью среды.Метод GetFolderPath. Просто измените "CommonDocuments" на "DesktopDirectory".

Member 14355624

строковое имя файла = texttablename.Текст;
если (именем.Длина == 0)
{
// В текстовом поле ничего нет, поэтому имя файла не было указано.
// Возможно, вы захотите сказать об этом пользователю.
}

// Есть ли у пути уже расширение файла?
если (!путь.HasExtension(имя файла))
{
// Нет. Мы добавим наши собственные.
именем += ".в SQL";
}

/ Начните с "хорошо известного" пути.

строка saveFilePath = путь.Комбинат(Справочник.GetParent(System.IO.Directory.GetCurrentDirectory()).Родитель.Полное имя, имя файла);
TextWriter wr = новый StreamWriter(saveFilePath);
водонепроницаемые.Писать(combinedscript.Текст);
водонепроницаемые.Рядом();

я сделал то, что вы сказали, братан, но тогда также файл создается без имени, но расширение .sql показывает
подскажите, как его получить

Dave Kreskowiak

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