Перейти к содержимому

Как очистить файл в c

  • автор:

Как очистить файл в c

Нравится ресурс?

Правила раздела Visual C++ / MFC / WTL (далее Раздела)

1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

File. Delete(String) Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Удаляет указанный файл.

public: static void Delete(System::String ^ path);
public static void Delete (string path);
static member Delete : string -> unit
Public Shared Sub Delete (path As String)
Параметры

Имя файла, предназначенного для удаления. Подстановочные знаки не поддерживаются.

Исключения

платформа .NET Framework и .NET Core версий старше 2.1: path строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().

path имеет значение null .

Указан недопустимый путь (например, он ведет на несопоставленный диск).

Указанный файл используется.

Для файла имеется открытый дескриптор, а операционной системой является Windows XP или более ранней версии. Этот открытый дескриптор может быть результатом перечисления каталогов и файлов. Дополнительные сведения см. в разделе Практическое руководство. Перечисление каталогов и файлов.

Параметр path задан в недопустимом формате.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.

У вызывающего объекта отсутствует необходимое разрешение.

Файл является исполняемым файлом, который уже используется.

path является каталогом.

Параметр path указывает файл только для чтения.

Примеры

В следующем примере группы файлов копируются в папку резервного копирования C:\archives\2008, а затем удаляются из исходной папки.

string sourceDir = @"c:\current"; string backupDir = @"c:\archives\2008"; try < string[] picList = Directory.GetFiles(sourceDir, "*.jpg"); string[] txtList = Directory.GetFiles(sourceDir, "*.txt"); // Copy picture files. foreach (string f in picList) < // Remove path from the file name. string fName = f.Substring(sourceDir.Length + 1); // Use the Path.Combine method to safely append the file name to the path. // Will overwrite if the destination file already exists. File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), true); >// Copy text files. foreach (string f in txtList) < // Remove path from the file name. string fName = f.Substring(sourceDir.Length + 1); try < // Will not overwrite if the destination file already exists. File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName)); >// Catch exception if the file was already copied. catch (IOException copyError) < Console.WriteLine(copyError.Message); >> // Delete source files that were copied. foreach (string f in txtList) < File.Delete(f); >foreach (string f in picList) < File.Delete(f); >> catch (DirectoryNotFoundException dirNotFound)
let sourceDir = @"c:\current" let backupDir = @"c:\archives\2008" try let picList = Directory.GetFiles(sourceDir, "*.jpg") let txtList = Directory.GetFiles(sourceDir, "*.txt") // Copy picture files. for f in picList do // Remove path from the file name. let fName = f.Substring(sourceDir.Length + 1) // Use the Path.Combine method to safely append the file name to the path. // Will overwrite if the destination file already exists. File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), true) // Copy text files. for f in txtList do // Remove path from the file name. let fName = f.Substring(sourceDir.Length + 1) try // Will not overwrite if the destination file already exists. File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName)) // Catch exception if the file was already copied. with | :? IOException as copyError -> printfn $"" // Delete source files that were copied. for f in txtList do File.Delete f for f in picList do File.Delete f // Catch exception if the file was already copied. with | :? DirectoryNotFoundException as dirNotFound -> printfn $"" 
Dim sourceDir As String = "c:\current" Dim backupDir As String = "c:\archives\2008" Try Dim picList As String() = Directory.GetFiles(sourceDir, "*.jpg") Dim txtList As String() = Directory.GetFiles(sourceDir, "*.txt") ' Copy picture files. For Each f As String In picList 'Remove path from the file name. Dim fName As String = f.Substring(sourceDir.Length + 1) ' Use the Path.Combine method to safely append the file name to the path. ' Will overwrite if the destination file already exists. File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), True) Next ' Copy text files. For Each f As String In txtList 'Remove path from the file name. Dim fName As String = f.Substring(sourceDir.Length + 1) Try ' Will not overwrite if the destination file already exists. File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName)) ' Catch exception if the file was already copied. Catch copyError As IOException Console.WriteLine(copyError.Message) End Try Next For Each f As String In txtList File.Delete(f) Next For Each f As String In picList File.Delete(f) Next Catch dirNotFound As DirectoryNotFoundException Console.WriteLine(dirNotFound.Message) End Try 

Комментарии

Укажите имя файла с любыми относительными или абсолютными сведениями о пути для path параметра . Подстановочные знаки не могут быть включены. Относительные сведения о пути интерпретируются как относительные относительно текущего рабочего каталога. Сведения о том, как получить текущий рабочий каталог, см. в разделе GetCurrentDirectory.

Если удаляемого файла не существует, исключение не создается.

Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

Как очистить файл в c

#include
int remove( const char * fname )
Стирает файл, возвращает 0 в случае успеха.

Еще один такой же, кнопку «Редактировать юзайте»

Голова человеку дадена — не токмо шапку носить!
Последний раз редактировалось merax; 28.11.2007 в 23:23 .
Регистрация: 21.11.2007
Сообщений: 8
!
Сообщение от Adamant
#include
int remove( const char * fname )
Стирает файл, возвращает 0 в случае успеха.

а ты не знаешь как файл опустошить?
Пользователь
Регистрация: 20.09.2007
Сообщений: 99


FILE * fopen( «fname», «w» )
Существующий файл с указанным именем будет стерт, а вместо него будет открыт новый файл (с тем же именем). Если файла с указанным вами именем не существует, он будет создан.
P.S. Позволю себе дать вам дружеский совет: если я не ошибаюсь, вы начали изучение сразу с C++. Не пожалейте месяца изучите хотя бы базовый курс простого Си. Убежден, не пожалеете!
С наилучшими пожеланиями.

Голова человеку дадена — не токмо шапку носить!
Регистрация: 21.11.2007
Сообщений: 8
эээ

[QUOTE=Adamant;51607]
FILE * fopen( «fname», «w» )
Существующий файл с указанным именем будет стерт, а вместо него будет открыт новый файл (с тем же именем). Если файла с указанным вами именем не сущес. QUOTE]

У меня Билдер пишет хрень какуюто: «can not convert char * to file *»,
причем тут чар? Не знаете что за ошибка?

Пользователь
Регистрация: 20.09.2007
Сообщений: 99

FILE *fp;
if( ( fp = fopen( «C:/Papka/file.txt», «w» ) ) == NULL )
puts( » Чего-то я не могу ваш файл открыть?!» );
getch();
exit();
>
fclose( fp );
puts( «А файл то уже пустой! «);

Голова человеку дадена — не токмо шапку носить!
Пользователь
Регистрация: 01.11.2007
Сообщений: 33
Сообщение от Adamant


FILE * fopen( «fname», «w» )
P.S. Позволю себе дать вам дружеский совет: если я не ошибаюсь, вы начали изучение сразу с C++. Не пожалейте месяца изучите хотя бы базовый курс простого Си.

Некоторые считают что Си может помешать правильному восприятию Си++ изначально так сказаать збитть с толку, хотя я не согласен. в принципе fstream может делать все что и FILE так что

fopen( "fname", "w" )

эквивалентно

file.open( "fname", ios::out )

Последний раз редактировалось PuzzleC; 26.11.2007 в 06:51 .
Пользователь
Регистрация: 20.09.2007
Сообщений: 99
Сообщение от PuzzleC

Некоторые считают что Си может помешать правильному восприятию Си++ изначально так сказать сбить с толку, хотя я не согласен.

В этом есть рациональное зерно: все таки разное мышление. В Си — структурное, а в Си с плюсами все таки преимущественно объектно-ориентированное. Но на мой взгляд знание «простых Сей» лишним ни в коем случае не будет. Лично из моего опыта по самостоятельному изучения: ( если это кому-нибудь будет интересно). Начал изучать сразу с Сей с плюсами, как мне тоже посоветовали, но через месяц бросил (многое не мог понять), начал с Си (правда уже была база знаний в PHP), после этого у меня все пошло как по маслу, правда действительно иногда давало о себе знать структурное мышление, но оно со временем перестает доминировать). Еще раз подчеркиваю, это сугубо мое мнение, которое может не совпадать с вашим.
С уважением.

Голова человеку дадена — не токмо шапку носить!
Пользователь
Регистрация: 25.03.2007
Сообщений: 67
ifstream

Может немного не по теме, но если использовать namespase std, и обьявлять переменную тима ifstream, то после того как мы доходим до конца файла (-1 позиция) фаил становиться аьсолютно не доступен, т.е. его нельзя не закрыть функция close.filename и похицию поменять тоже нельзя seekg.filename пока я с правляюсь с этой проблемой просто записывая всё содержимое файла в стринговую переменную, но хотелось бы услышать возможность РЕШЕНИЯ проблемы а не её ОБХОЖДЕНИЯ как в моём случае

Пользователь
Регистрация: 01.11.2007
Сообщений: 33

filename.clear(); // стереть флаг ошибки
По востижении EOF ios::state устонавливается в badbit, для дальнейшей работы надо badbit обнулить делает это функция член ios::clear();

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить файл с русским именем? Cricket2007 Помощь студентам 7 12.02.2008 17:51
Как удалить файл dagarik Общие вопросы Delphi 9 05.12.2007 20:25
Помогите, Как программо удалить файл который находится на жестком диске. niva622 Помощь студентам 3 19.04.2007 19:09
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36

Удаление файлов

Функция remove() удаляет файлы. Она имеет следующий прототип:

int remove(const char *имя_файла);

В случае удачного выполнения она возвращает ноль, а в случае неудачного — не ноль.

Следующая программа использует remove() для удаления файла, определяемого пользователем:

/* пример использования remove() */
#include
int main(void)
char fname[80];
printf («Name of file to remove: «);
gets(fname);
if(remove(fname)) printf(«Error removing file»);
return 1;
>
else return 0;
>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *