João Henrique Braga Ответов: 2

Как создать приложение с собственным расширением в ваших файлах и которое генерирует более одного файла?


Здравствуйте, я разрабатываю приложение (windows Forms), где использую базу данных MySql Server CE.

Я хотел бы сделать следующее:

1) Откройте приложение, произведите необходимые расчеты с помощью ввода пользовательских данных.
2) пользователь может сохранить данные в базе данных, которая будет создана для каждого приложения.
3) также будет создан файл, где он сможет открыть базу данных непосредственно через мое приложение.

(простите меня за то, что я не знаю, как объяснить это лучше, но я приведу вам пример того, что я пытаюсь сказать, когда мы используем Word, excel и т. д... создается файл с определенным расширением, и при открытии он возвращает тот файл, в котором работал пользователь) .

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

Джа consegui "Фацер" на парте де Герар о Банко-де-Dados, порем о местных ainda é escolhido не просто пользователь... мас гоу Комо Мудара иссо, Мась о. Пассо 3) realmente ЕС не СЭИ... Desde ja muito obrigado a todos <3 .

Eu estou desenvolvendo o meu trabalho de conclusão de curso pela universidade federal de lavras (UFLA) no BRAZIL.

2 Ответов

Рейтинг:
2

RickZeeland

Вы можете использовать команду CREATE DATABASE с правильным именем, см.: c# - создание базы данных с помощью программирования Connector/NET? - переполнение стека[^]

Чтобы открыть приложение с помощью ярлыка, предположим, что вы используете Windows, вы можете создать пакетный файл, который вызывает ваше приложение с параметром. Конечно, ваше приложение должно будет прочитать этот параметр при запуске.
Что-то вроде этого:

string myDatabaseName = "test";
File.WriteAllText("test.bat", "Myapp.exe " + myDatabaseName);
Вы можете прочитать параметры командной строки в вашей программе.cs Главный() функция, см. пример здесь: https://www.dotnetperls.com/main[^]

Также можно создать ярлык программно, см.: Создание ярлыка программно в C# | Fluxbytes[^]


João Henrique Braga

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

João Henrique Braga

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

Рейтинг:
12

Richard MacCutchan

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


João Henrique Braga

Как создать собственное расширение для своего приложения и внести его в системный реестр?

Richard MacCutchan

Видеть Типы файлов - Win32 apps | Microsoft Docs[^].

João Henrique Braga

Я почти полностью понимаю, как сделать правильное расширение и его конфигурацию, но как бы я сделал файл, который имел бы расширение, которое я сделал, и мое приложение открыло бы этот файл? эта часть программирования трудна для меня, потому что мое приложение получило данные от пользователей, выполнило необходимые вычисления и создало базу данных (которая будет специфична для каждого файла). Например, когда мы создаем потолочный файл ".txt", мы можем сохранить его там, где захотим, и всякий раз, когда мы открываем блокнот, он откроет его с соответствующими данными

Richard MacCutchan

После того, как вы зарегистрировали свой тип файла, вы просто создаете его так же, как и любой другой файл. например, если ваше расширение -. prx, вы можете иметь что-то вроде:

File.WriteAllText("MyFile.prx", stringText); // write some lines of text

// for a non text file
Byte[] myData = // whatever data you wish to write
File.WriteAllBytes("MyFile.prx", myData);

На самом деле это, скорее всего, будет сложнее, чем любое из этих простых утверждений. После того как вы создали свои файлы, вы должны иметь возможность дважды щелкнуть их в Проводнике Windows и автоматически загрузить приложение. Вы также можете использовать OpenFileDialog класс в вашем приложении, чтобы найти все файлы с вашим расширением.

Есть ли в этом смысл?

João Henrique Braga

Я понимаю, я попробую здесь, но мне бы хотелось услышать ваше мнение, если это возможно между этими двумя возможностями:
1) создайте файл со своим собственным расширением, который содержит только путь к моей базе данных (таким образом, мое приложение всегда будет создавать два файла, один со своим собственным расширением, указывающим путь, а другой будет ".sdf", который будет моей базой данных).
2) попробуйте каким-то образом поместить все мои данные, которые вам нужны, и заставить приложение прочитать их, однако приложение имеет много данных, мы говорим о приложении с более чем 10 используемыми формами и различными классами !! Это обширная вещь.

Richard MacCutchan

Вариант 1 звучит более разумно, но я не уверен, зачем вам нужен дополнительный файл. Если это стандартное приложение на языке C#, то вы можете сохранить расположение файла .sdf в настройках Вашего приложения.

João Henrique Braga

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

Richard MacCutchan

Расширение .sdf уже используется Microsoft SQL Server Compact Edition, поэтому оно может быть недоступно для вас. Однако из ваших комментариев я получаю ощущение, что вы делаете свое приложение гораздо более сложным, чем это необходимо.

João Henrique Braga

как я могу сохранить данные, введенные в приложение? менее сложным способом?

Richard MacCutchan

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

João Henrique Braga

хорошо, спасибо за вашу помощь