Пишу прогу на C#, появилась данная проблема
нашел класс System.Uri, взял оттуда свойство isFile - видимо сделал глупость - он почему-то и на папку возвращает TRUE...
что делать?
Пишу прогу на C#, появилась данная проблема
нашел класс System.Uri, взял оттуда свойство isFile - видимо сделал глупость - он почему-то и на папку возвращает TRUE...
что делать?
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
28 июля 2009 в 14:01
Если речь идёт о файлах в локальной файловой системе, то вот ссылка по теме: http://msdn.microsoft.com/en-us/library/system.io.pa...
28 июля 2009 в 14:01
именно так, спасибо!
30 июля 2009 в 0:05
черт, я что-то совсем оглупел – а что там за метод это делает?
30 июля 2009 в 3:05
Ни это ли?
-> http://msdn.microsoft.com/en-us/library/system.io.pa...
Ежели папка то возврат нуллика, а файл – имени и расширения.
30 июля 2009 в 21:02
public void Bust(string Dir)
{
string[] arr;
Dictionary<long, string> hashTable = new Dictionary<long, string>();
long curHash = 0;
labCountAll.Text = Convert.ToString(listBox1.Items.Count);
try
{
arr = Directory.GetFileSystemEntries(Dir);
foreach (string str in arr)
{
>>>>>>>>>>>>>>
if (Path.GetFileName(str) != "")
>>>>>>>>>>>>>>
{// Если текущий объект – файл
curHash = getHash(str);
if (hashTable.ContainsKey(curHash))
{// Если текущий файл обладает хэш-кодом, имеющимся в таблице
listBox1.Items.Add(str);
labCountAll.Text = Convert.ToString(listBox1.Items.Count);
listBox2.Items.Add(str);
}
else
{
hashTable.Add(curHash,str);
listBox1.Items.Add(str);
}
}
else
{
Bust(str);
}
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
return;
}
}
При попытке выполнить Path.GetFileName("C:\\1test\\Новая папка")
всё равно выполняется 1 ветка… =(
есть предположение, что в конце пути надо как-то добавить "\\", но это рекурсивно приводит к вопросу данного поста…
4 августа 2009 в 10:01
А не проще ли смотреть СВОЙСТВА обекта?
FileInfo FI = new FileInfo(твой обект);//для просмотра атрибутов
string atribyts = FI.Attributes.ToString();//наши атрибуты
int f = atribyts.IndexOf("Directory");//если файл, то f == -1, иначе f >=0
// f будет иметь индекс первого вхождения слова Directory в строке atribyts
4 августа 2009 в 14:05
спс, попробую!
4 августа 2009 в 18:00
я вот думаю – как создание нового объекта за каждый проход отразиться на быстродействии…
думаю надо на С++ реализовать=)
4 августа 2009 в 19:02
Что за чудо программа то такая?
4 августа 2009 в 21:01
Поиск дубликатов файлов по содержанию.
Считается хэш-код файла.
Программа содержит ассоциацивный массив в виде "Хэш-Путь в системе".
если софтина находит хэш код, сходный с имеющимся в таблице – путь к файлу выводиться в listbox для "файлов, к удалению"