Очистка файла си шарп

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().

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

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

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

Параметр 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.

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

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

Применяется к

См. также раздел

Источник

Очистка текстового файла

Возможно ли сначала считать данные из текстового файла, потом очистить, а потом записать в него новое значение. И если возможно, то как это реализовать?
Я использовала StreamReader и StreamWriter. Но данные первоначальные у меня не пропадают, к ним добовляются новые.

1 2 3 4 5 6 7 8 9 10 11 12 13 14
static void Main(string[] args) { Console.WriteLine("Исходная строка:\n"); StreamReader sr = new StreamReader(@"D:/laba7.txt",true); Console.Write(sr.ReadToEnd()); sr.Close(); Console.WriteLine("\nПолученная строка:\n"); StreamWriter sw = new StreamWriter(@"D:/laba7.txt", true); sw.WriteLine("\nsample text"); sw.Close(); Console.ReadLine(); }

Очистка текстового файла, открытого в другой программе
Как очистить текстовый файл, который использует другая программа?

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

Очистка текстового файла
Здраствуйте, подскажите пожалуйсто как написть на c++ программу удоляющую полностью все из.

Очистка текстового файла перед записью
Есть цикл который каждый раз записывает в текстовый файл одно и то же.Нужно чтоб этот текстовый.

Источник

File Stream. Flush Метод

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

Очищает буферы для этого потока и вызывает запись всех буферизованных данных в файл.

Перегрузки

Очищает буферы для этого потока и вызывает запись всех буферизованных данных в файл.

Очищает буферы для этого потока и вызывает запись всех буферизованных данных в файл, а также очищает все буферы промежуточных файлов.

Flush()

Очищает буферы для этого потока и вызывает запись всех буферизованных данных в файл.

public: override void Flush();
public override void Flush ();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()

Исключения

Примеры

Этот пример кода является частью более крупного примера, предоставленного Lock для метода.

// Update the file. case 'W': try < fileStream->Seek( textLength, SeekOrigin::Begin ); fileStream->Read( readText, textLength - 1, byteCount ); tempString = gcnew String( uniEncoding->GetChars( readText, textLength - 1, byteCount ) ); recordNumber = Int32::Parse( tempString ) + 1; fileStream->Seek( textLength, SeekOrigin::Begin ); fileStream->Write( uniEncoding->GetBytes( recordNumber.ToString() ), 0, byteCount ); fileStream->Flush(); Console::WriteLine( "Record has been updated." ); > 
// Update the file. case 'W': try
' Update the file. Case "W"C Try aFileStream.Seek(textLength, _ SeekOrigin.Begin) aFileStream.Read( _ readText, textLength - 1, byteCount) tempString = New String( _ uniEncoding.GetChars( _ readText, textLength - 1, byteCount)) recordNumber = _ Integer.Parse(tempString) + 1 aFileStream.Seek( _ textLength, SeekOrigin.Begin) aFileStream.Write(uniEncoding.GetBytes( _ recordNumber.ToString()), 0, byteCount) aFileStream.Flush() Console.WriteLine( _ "Record has been updated.") 

Комментарии

Этот метод переопределяет метод Stream.Flush.

При вызове FileStream.Flush метода буфер ввода-вывода операционной системы также очищается.

Кодировщик потока не очищается, если вы явно не вызовете Flush или удалите объект. Если задано значение,то StreamWriter.AutoFlush true данные будут удалены из буфера в поток, но состояние кодировщика не будет удалено. Это позволяет кодировщику сохранять свое состояние (частичные символы), чтобы кодировать следующий блок символов правильно. Этот сценарий влияет на UTF8 и UTF7, где некоторые символы могут быть закодированы только после того, как кодировщик получит смежные символы или символы.

Так как буфер можно использовать для чтения или записи, Flush() выполняет следующие две функции:

  • Все ранее записанные в буфер данные копируются в файл, и буфер очищается, за исключением состояния кодировщика.
  • true Если BufferedStream.CanSeek данные были ранее скопированы из файла в буфер для чтения, текущая позиция в файле уменьшается на количество непрочитанных байтов в буфере. Затем буфер очищается.

Используйте перегрузку Flush(Boolean) метода, если необходимо убедиться, что все буферные данные в промежуточных буферах файлов записываются на диск.

См. также раздел

Источник

Очистка файла си шарп

Gray Pipe

Приносим извинения. Запрошенное содержимое было удалено. Вы будете автоматически перенаправлены через 1 секунду.

Этот форум закрыт. Благодарим вас за ваш вклад. Если вам нужна дополнительная информация о том, где еще можно найти помощь, вы можете посетить страницу ресурсов.

Лучший отвечающий

Вопрос

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

private void textBox1_TextChanged(object sender, EventArgs e) < string s = textBox1.Text; //Присваиваем переменной s значение равенства textBox1 > private void button1_Click(object sender, EventArgs e) < DirectoryInfo dir = new DirectoryInfo(@"C:\"); foreach (FileInfo file in dir.GetFiles("s", SearchOption.AllDirectories)); //Находим текстовый файл имя которого указано в textBox1 > > >

Я пытаюсь понять как все это работает и может быть не правильно мыслю. Тут ищем файл с именем указанным в tB1 в указанной категории, включая все подкатегории. Не знаю как тлько удалить все что в нем. Наверно лучше заменить все строки на «» пустоту. Понимаю что методов несколько. Поделитесь знаниями. Если можно с комментариями самого кода

Ответы

Просто обнулять можно не все файлы. Даже пустые файлы, могут содержать в себе какие-либо служебные данные, например, различные заголовки. Поэтому так просто стирать все внутренности файла нельзя. Он попросту может не открыться в той программе, в которой обычно открывается. Поэтому, думаю, надо для каждого вида распространенных файлов изучать его структуру и потом писать его сброс, те обнуление тела и приведение заголовков к изначальному виду. Если возможно, то конечно, можно и все внутри затирать. Но это вначале надо узнать, возможен-ли такой подход. 1. Сделайте рекурсивную процедуру, которая получает все директории и фалы у выбранной директории. 2. После чего производит проверку файлов в текущей директории на наличие нужного. 3. Вызывает сама себя с идущей по порядку из существующих в текущей директории директории. По коду. Здесь мы получаем все файлы с именем «s», находящиеся на диске «C» и циклом проходим по ним. Измените строку кода так:

foreach (FileInfo file in dir.GetFiles(textBox1.Text, SearchOption.AllDirectories));

Начальная директория, по которой начинаем поиск тоже, как я понимаю, должна задаваться. Поэтому сделайте ссылку на какой-либо текст бокс, в котором указана стартовая директория поиска. И еще, почему такой способ поиска не очень эффективный, потому что он при каждой итерации цикла будет вызывать метод GetFiles. Вынесите его до цикла, а в цикле вставьте вместо него переменную, в которую был сохранен результат. Про метод GetFiles почитайте тут [My blog] [My E-mail]

Источник

Читайте также:  Html table span all columns
Оцените статью