Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
 Аватар для Kenedy
14 / 15 / 5
Регистрация: 11.10.2012
Сообщений: 121
.NET 4.x

Архив со своим расширением

27.08.2013, 22:39. Показов 2524. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно, если можно создать архив на подобии .rar или .zip только использовать расширение .fss (сам придумал) к примеру и что-бы только моя программа могла его открыть и создавать! Можно ли такое сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2013, 22:39
Ответы с готовыми решениями:

Как создать архив с расширением .rar и запаковать туда все файлы из папки
пишу проект, наношу последние штрихи и тут трудности! 1)как создать архив с расширение .rar и засунуть туда все файлы из папки...

Как запустить файл со своим расширением и...
Добрый день, друзья! В системе зарегистрирован файл с моим расширением, например, "му". Вопрос в следующем: Как...

Программа-редактор для файла со своим расширением
Добрый день! На данный момент я пишу простой редактор/калькулятор матриц на Qt фреймворке. Я уже раскидал GUI, расчеты реализовал, и тут...

11
177 / 94 / 10
Регистрация: 27.05.2013
Сообщений: 290
27.08.2013, 22:48
Только если ты ещё напишешь свою операционную систему ) NTFS, как я знаю, не поддерживает права доступа на уровне разрешений файлов. Поэтому такой файл можно даже блокнотом создать в любом случае.
0
 Аватар для Закревский
184 / 184 / 29
Регистрация: 14.04.2013
Сообщений: 499
28.08.2013, 00:15
Вот не сдержусь:а зачем?
0
MЫW
 Аватар для phantom96
124 / 109 / 9
Регистрация: 15.02.2013
Сообщений: 538
28.08.2013, 00:50
Теория:
Создаём функцию serialize(string file), которая на основе file создаёт, ВНИМАНИЕ, файл с таким именем и любым придуманным вами расширением. Способ сериализации придумываете сами. Например сначала шифруете нужную информацию а потом используя BinaryFormatter записываете. А вообще любой файл это просто набор байт, расширение лишь указатель на то чем файл открывать.
0
 Аватар для Kenedy
14 / 15 / 5
Регистрация: 11.10.2012
Сообщений: 121
28.08.2013, 07:34  [ТС]
Цитата Сообщение от phantom96 Посмотреть сообщение
Теория:
Создаём функцию serialize(string file), которая на основе file создаёт, ВНИМАНИЕ, файл с таким именем и любым придуманным вами расширением. Способ сериализации придумываете сами. Например сначала шифруете нужную информацию а потом используя BinaryFormatter записываете. А вообще любой файл это просто набор байт, расширение лишь указатель на то чем файл открывать.
Спасибо) Нашёл такой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.IO;
 
namespace SerializeData
{
    [Serializable]
    class Program
    {
        static void Main(string[] args)
        {
            Serialize();
            Deserialize();
        }
 
        static void Serialize()
        {
            //создаем объект который будет сериализован
            List<string> words = new List<string>();
            words.Add("мир");
            words.Add("дверь");
            words.Add("мяч");
 
            //откроем поток для записи в файл
            FileStream fs = new FileStream("file.s", FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
            BinaryFormatter bf = new BinaryFormatter();
 
            //сериализация
            bf.Serialize(fs, words);
            fs.Close();
        }
 
        static void Deserialize()
        {
            List<string> words;
            FileStream fs = new FileStream("file.s", FileMode.Open, FileAccess.Read, FileShare.Read);
            BinaryFormatter bf=new BinaryFormatter();
            words = (List<string>)bf.Deserialize(fs);
            fs.Close();
 
            foreach (string w in words)
            {
                Console.WriteLine(w);
            }
        }
 
    }
}

Добавлено через 10 минут
Ток вот как теперь сделать такое, вместо :
C#
1
2
3
4
List<string> words = new List<string>();
            words.Add("мир");
            words.Add("дверь");
            words.Add("мяч");
Добавить выбранный файл:
openFileDialog1.FileName; ?
0
 Аватар для n1l
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
28.08.2013, 07:35
Цитата Сообщение от Kenedy Посмотреть сообщение
Как можно, если можно создать архив на подобии .rar или .zip только использовать расширение .fss (сам придумал) к примеру и что-бы только моя программа могла его открыть и создавать! Можно ли такое сделать?
Да, только то, что у вас после точки записано никак не влияет на то, сможет ли открыть другая программа ваш файл или нет, если будет знать какой в ней формат.
Можно воспользоваться GzipStream'ом для создания zip архива. Его например может прочитать 7zip, и другие zip-архиваторы. И им плевать что за расширение у вашего файла будет. Хоть .ЕдинаяРоссия. Почему? Потому что формат файла определяется содержимым а не внешним расширением.
1
 Аватар для Kenedy
14 / 15 / 5
Регистрация: 11.10.2012
Сообщений: 121
28.08.2013, 08:27  [ТС]
Цитата Сообщение от n1l Посмотреть сообщение
Да, только то, что у вас после точки записано никак не влияет на то, сможет ли открыть другая программа ваш файл или нет, если будет знать какой в ней формат.
Можно воспользоваться GzipStream'ом для создания zip архива. Его например может прочитать 7zip, и другие zip-архиваторы. И им плевать что за расширение у вашего файла будет. Хоть .ЕдинаяРоссия. Почему? Потому что формат файла определяется содержимым а не внешним расширением.
ну мб и так... но вот упаковал текст сериализацией, и её блокнотом не отрыть, получишь такое:
 яяяя  System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] _items_size_version        Тистирование в„–2

0
 Аватар для n1l
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
28.08.2013, 08:29
К чему это? К защищенности? попробуйте любой рар архив открыть блокнотом?
0
MЫW
 Аватар для phantom96
124 / 109 / 9
Регистрация: 15.02.2013
Сообщений: 538
28.08.2013, 13:12
Вы определитесь для чего вам свой формат... Если вы хотите именно архив, который не будут открывать другие программы, вам надо писать свой алгоритм сжатия и свой формат файла, так же и придумывать как эти файлы открывать. Куда например записывать информацию о содержимом в начало или в конец и т.д.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
28.08.2013, 14:29
Kenedy, можете писать каждый байт по 2 раза - получится своя архивация. Никто не догадается. Конечно, архив будет в 2раза больше по размеру, но настоящего исследователя это не должно останавливать!
1
 Аватар для Kenedy
14 / 15 / 5
Регистрация: 11.10.2012
Сообщений: 121
28.08.2013, 21:34  [ТС]
Хелпуйте кто может =)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 private void Serialize()
        {
            string t1 = String.Empty;
            string t2 = String.Empty;
            List<string> words = new List<string>();
            words.Add(richTextBox1.Text);
            FileStream fs = new FileStream("file.tsf", FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
            BinaryFormatter bf = new BinaryFormatter();
            t1 = richTextBox1.Text;
            for (int i = 0; i < t1.Length; i++) //сама шифровка_1
                t2 += (char)(((int)t1[i]) + 59); //сама шифровка_2
            bf.Serialize(fs, t2);
            fs.Close();
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void Deserialize(string path)
        {
            List<string> words;
            FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
            BinaryFormatter bf = new BinaryFormatter();
            words = (List<string>)bf.Deserialize(fs);
            String t2 = String.Empty;
            String t1 = String.Empty;
            foreach (string w in words)
            {
                t1 = w;
                for (int i = 0; i < t1.Length; i++)//сама дешифровка_1
                    t2 += (char)(((int)t1[i]) - 59);//сама дешифровка_2
                richTextBox1.Text = t2;
            }
            fs.Close();
Но при десериализации он не хочет расшифровывать, на вот этой строке:
C#
1
words = (List<string>)bf.Deserialize(fs);
Выкидывает ошибку: "Не удалось привести тип объекта "System.String" к типу "System.Collections.Generic.List`1[System.String]"."
Кто сможет помгите, или натолкните на мыслю как реализовать? Заранее спасибо)
0
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
28.08.2013, 22:30
1. Создать текстовый файл с любым расширением.
2. Писать туда свои данные.
3. Сохранять и открывать как текстовый файл.

Самое простое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.08.2013, 22:30
Помогаю со студенческими работами здесь

Создайте архив со своим именем в заданной папке с максимальной степенью сжатия...
Создайте архив со своим именем в папке с:\Личное и поместите в него папку с:\Личное\Ламп с максимальной степенью сжатия. Просмотрите...

Запаковка файлов в архив с расширением pack
Есть игровой архив pack и скрипт для его распаковки в проге quickbms. Распаковав его и отредактировав файлы, необходимо запаковать файлы...

Чем открыть архив с расширением *dat (WHS 2011)
Здравствуйте! Был создан архив папки с файлами клиентской машины через windows home server панель администрирования. Архив представляет из...

Как открыть архив с расширением *.PAE если забыл пароль?
Добрый день! Имеется архив созданный несколько лет назад с помощью проги ПоверАрхивер, пароль забыл, но помню что он от 4 до 7 цифр, точно...

Открыть, прочитать, изменить файл со "своим" расширением
Как можно открыть файл, допустим файл &quot;test.dat&quot;, вывести его значение в лейбл, изменить его и сохранить? Сильнее всего интересует как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru