![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
Утро доброе!
У меня несколько простых вопросов и хотелось бы увидеть по ним конкретные примеры: 1. Есть путь C:\test\test1\test2\ - тут мне надо создать папку test3 как проверить есть в этом каталоге эта папка или нет легко, а как проверить есть ли вообще все эти папки \test\test1\test2? 2. Как получить количество вложенных папок в папке C:\test\? 3. Как создать временный файл, который при закрытии программы удалялся? 4. И опять повторюсь, как создать ярлык? Спасибо |
|||
|
||||
| emmanuil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Directory.CreateDirectory("путь");
Directory.Exists("путь") Directory.GetDirectories("путь").Length - количество с поддерикториями Directory.GetDirectories("путь", "*.*", SearchOption.AllDirectories).Length - количество без поддерикторий |
|||
|
||||
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
Ок спасибо со 2 вопросом всё понятно. Вопрос только вот в чём используя Directory.Exists("C:\test\test1\test2\test3") он мне вернёт false если не будет папки test3 а вот если не будет папки test1? Приведу свой пример: If (Directory.Exists("C:\test\test1\test2\test3")) Console.WriteLine(“Такая папка уже существует”); Else Directory.CreateDirectory("C:\test\test1\test2\test3"); Вот у меня проблема такая, что если вообще такова пути не существует, что у меня нет всех этих папок то они же все и создадутся вместе с test3. А мне надо включить в проверку если таких папок нет выводить ошибку как это сделать проще всего? У меня есть 1 решение разделять путь используя substr() “\” и проверять каждую папку отдельно, у каво есть ещё какие решения? |
|||
|
||||
| emmanuil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Без разницы! если нет хоть одной папки независимо в конце или в начале, то вернет false.
"C:\test\test1\test2\test3" - это не совсем набор папок, это дерево, а C:\test\test1\test2\test3 - это полное имя test3, а test2 является родителем для test3 и так далее. Поэтому указывая так Directory.CreateDirectory("C:\test\test1\test2\test3") проверка будет проходить до последнего элемента дерева, тоесть до test3, а если во время проверки нет допустим test2, то значит false. Это само просто! Зачем тебе заморачиваться на substring'и? А вот насчет ярлыков я не пробовал. Добавлено через 1 минуту и 16 секунд
прошу прощения, не Directory.CreateDirectory, а Directory.DirectoryExists |
|||
|
||||
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
Всё теперь понятно и по этому вопросу, спасибо.
А с времеными файлами не работал ? |
|||
|
||||
| emmanuil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
скорее всего тебе придется самому создавать файл и удалять его. Но может есть какие то средства которых я незнаю, которые позволяют об этом не заботиться.
Просто создашь с какимнибудь именем ~filename, сделаешь скрытым(если надо) и тд. а потом удалишь. Другого способа я незнаю. есть еще FileAttributes.Temporary - это указывает на то, что файл временный, может поможет тебе. |
|||
|
||||
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
ок посмотрю, но я точно знаю что есть вроди какая то опция при создании файла где указываешь что этот файл существует пока работает программа - я уже так делал вот только забыл как |
|||
|
||||
| emmanuil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
File.Create(@"C:\dir\~$tmp.txt", 1, FileOptions.DeleteOnClose); и все!!! |
|||
|
||||
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
||||
|
||||
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
Родился новый вопрос, как скопировать папку со всем её содержимым? Как файл копировать я знаю File.Copy почему то аналогичной функции для Directory нет.
|
|||
|
||||
| archeg |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Это сообщение отредактировал(а) archeg - 5.5.2007, 17:29 -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
||||
|
|||||
| ziga |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 25.4.2007 Репутация: нет Всего: 1 |
Спасибо!
|
|||
|
||||
| Experimenter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 430 Регистрация: 8.5.2007 Где: Уфа Репутация: 8 Всего: 17 |
По второму вопросу смотри, что нашел в Object Browser:
public static string GetTempFileName() Member of System.IO.Path Summary: Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file. Returns: A System.String containing the full path of the temporary file. -------------------- public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ if(zlo1 < zlo2) return zlo1; else if(zlo1 > zlo2) return zlo2; else throw new Exception("Kill yourself by the wall"); } |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |