Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать файл. С созданием всех директорий. Функции для работы с путями файлов. 
:(
    Опции темы
iddqd
Дата 18.4.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: 2
Всего: 2



У меня есть путь к файлу, допустим: C:/hello/moto/abc.xml
Необходимо создать все директории и сам файл. Как это можно реализовать?
Как получить только директорию без пути файла (аналог дельфийской ExtractFilePath)?
И какие есть еще функции для работы с путями?

Добавлено через 2 минуты и 14 секунд
Жаль, что не могу удалить топик, разобрался.
FileInfo, DirectoryInfo.

Добавлено через 8 минут и 16 секунд
Единственный момент, что после:
Код

                Directory.CreateDirectory(new FileInfo(fileName).DirectoryName);
                File.Create(fileName);

К файлу нельзя обратиться:
Цитата

The process cannot access the file 'C:\test\fff\1.xml' because it is being used by another process.



--------------------
PM MAIL   Вверх
QryStaL
Дата 18.4.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Код

            FileStream fs = File.Create(fileName);
            fs.Close();



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
iddqd
Дата 18.4.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: 2
Всего: 2



Код

File.Create(fileName).Close();

Сделал так. Спасибо.


--------------------
PM MAIL   Вверх
Мурлыкатам_
Дата 18.11.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 5.2.2007
Где: город-герой Минск

Репутация: нет
Всего: 2



А как отловить исключение, если моя программа пытается получить доступ к файлу который к примеру используется другой программой. Если не обработать это исключение - фатал ерор, мот кто знает как красиво сделать try - catch?


--------------------
Хочешь что-то сделать - сделай это сам или попроси помощи на винграде smile
user posted image
PM MAIL ICQ   Вверх
1stain
Дата 18.11.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

Репутация: 8
Всего: 40



Мурлыкатам_
Код

            string filePath = @"C:\test.txt";
            FileStream fs;
            while (true)
            {
                try
                {
                    fs = File.Open(filePath, FileMode.Open);
                    break;
                }
                catch (IOException ex)
                {
                    if (ex.Message.Contains("because it is being used by another process"))
                    {
                        System.Windows.Forms.MessageBox.Show(string.Format("Ошибка открытия файла:{1}{0}{1}Закройте все процессы, которые работают с указанным файлом и нажмите 'Ok'.", ex.Message, Environment.NewLine), "Ошибка открытия файла", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                    }
                    else
                        throw;
                }
            }



--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
Wizard_Memfis
Дата 18.11.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



Мурлыкатам_, может лучше залочить использование этого файла?
--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.