teledexterus Ответов: 1

Как я могу прочитать имена filestream


У меня есть 3 jpg-изображения, хранящиеся на сервере.MapPath ("Картинки/"). Мне нужен способ прочитать имя каждого jpg-изображения, а затем зациклить каждый filejpg через FileStream delete ниже.
try
            {
                using (FileStream fsSource = new FileStream(Server.MapPath("Pictures/" + filejpg), FileMode.Open, FileAccess.Read))
                {
                    File.Delete(Server.MapPath("Pictures/" + filejpg));
                }
            }
            catch (FileNotFoundException ioEx)
            {
                Label100.Text = "Filestream Delete Old: " + ioEx.ToString();
            }


Что я уже пробовал:

Я попытался просто удалить папку с картинками. Из этого ничего не вышло: через (файлового потока fsSource = новый хранилище FileStream(сервер.MapPath ("Pictures/"), FileMode.Открытия, Флагами Fileaccess.Читать))

Richard Deeming

Этот код никогда уходить на работу. Вы открыли файл, который предотвращает любой другой процесс, включая ваш собственный! - от его удаления. Затем вы пытаетесь удалить его, сохраняя его открытым и заблокированным.

Снять using (FileStream ... ) линия, и просто используйте File.Delete.

Если это все еще не работает, обновите свой вопрос и объясните проблему, которую вы пытаетесь решить.

teledexterus

Тогда без filestream просто файл.Удалить("Pictures/" + filepg). Мне нужно иметь возможность читать файлы в "Pictures/", а затем зацикливать файл.Удалить ("Pictures/" + filepg)

1 Ответов

Рейтинг:
5

Richard Deeming

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

Вы не можете удалить файл, пока у вас есть открытый файл. FileStream ссылаясь на него.

Если вы пытаетесь удалить все соответствующие файлы в определенной папке, вам необходимо использовать Каталог.Заражен[^]:

string folder = Server.MapPath("~/Pictures/");
foreach (string file in Directory.GetFiles(folder, "*.jpg"))
{
    try
    {
        File.Delete(file);
    }
    catch (IOException ex)
    {
        Label100.Text = string.Format("Delete '{0}': {1}", Path.GetFileName(file), ex);
    }
}


0x01AA

+5