Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > запись заголовка подкаталога в файл


Автор: kozhura 21.3.2009, 14:16
Здраствуйте! Вопрос такой:

Код

string[] filePathsoem = Directory.GetFiles(@"OEM\", "*.dsm", SearchOption.AllDirectories);
 for (int gc = 0; gc < filePathsoem.Count(); gc++)
                {
                        FileStream sd = new FileStream(filePathsoem[gc], FileMode.Truncate);
                        BinaryWriter gd = new BinaryWriter(sd);

......
Код

string[] foundfoldersoem = Directory.GetDirectories(@"OEM");
                    string dirNameoem = "";
                    string[] splitPathoem = foundfoldersoem[gc].Split('\\');
                    dirNameoem = splitPathoem[splitPathoem.Length - 1];
                     gd.Write(dirNameoem.Length);
                      }


Идеология такова: я беру сначала строчный массив, который получает имя .dsm файлов из подкаталогов ОЕМ, далее все это дело в файлстрим, и для записи перегружеых переменных, BinaryWriter естественно, затем беру еще один строчный массив, который получает имена подкаталогов путей, затем из этого массива убираю имя каталога (например путь OEM\ABCD...., я убиаю ОЕМ и остатся только ABCD...), и беру под это дело отдельный string, а далее самое важное: Количество букв из имени этого ABCD... нужно записать в .dsm файл, я это естественно делаю, но получается следующая картина: допустим имя каталога ACDF содержит  символа, а ACDFER - 6 символов, так оно почемуто записывает в .dsm из папки ACDFER 4 символа, а в ACDF - 6 символов, прошу помочь с проблеммой....

Заранее спасибо,
kozhura 

Автор: kozhura 21.3.2009, 21:07
Дело немного продвинулось...
поял, что более актуальнее пригодится FileInfo и DirectoryInfo
Код

 DirectoryInfo workdir = new DirectoryInfo("OEM");
 DirectoryInfo[] getdirs = workdir.GetDirectories();
  

Единственное, что понять немогу, что брать в массив getdirs, потому что когда я делаю так:
Код

 DirectoryInfo workdir = new DirectoryInfo("OEM");
 DirectoryInfo[] getdirs = workdir.GetDirectories();
for (int u = 0; u < getdirs.Count(); u++)
                        {
                          gd.Write (getdirs[u].Name.Length);
                        }

то оно начинает писать в каждый .dsm по байту длинн каждой поддиректории...

Автор: kozhura 22.3.2009, 11:19
Может кто-нибудь подскажет другой способ запись количества символов подкаталога в файл.... smile 

Автор: PashaPash 23.3.2009, 16:28
kozhura, а чем тебя твой способ не устраивает?

Автор: kozhura 23.3.2009, 23:29
ну смотри, оно почемуто в обоих случаях перезаписывает столько раз, сколько подкаталогов, тоесть 4 подкаталога - четырежде переписывается...

Автор: kozhura 24.3.2009, 23:50
разобрался, спасибо(хотя помощь и не потребовалась разобраться самому) smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)