ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

18.03.2010, 20:40
|
|
Новичок
Регистрация: 10.03.2010
Сообщений: 6
Провел на форуме: 17265
Репутация:
0
|
|
C# Access Directory
Здравствуйте, стоит такая задача, которую надо реализовать на C#:
Нахождение файла в Директории «C:\Documents and Settings» .
Код:
DirectoryInfo dir = new DirectoryInfo(“C:\Documents and Settings”);
foreach (FileInfo file in dir.GetFiles(n_file, SearchOption.AllDirectories))
{
Console.WriteLine(file.FullName);
}
Но в папке C:\Documents and Settings есть папки которые закрыты для чтения когда цыкл доходит до этой папки он выкидывает в catch .
Как сделать чтоб пропустило папку для чтение и цыкл пошол дальше.
Последний раз редактировалось Sharper; 18.03.2010 в 20:42..
|
|
|

18.03.2010, 20:46
|
|
Познавший АНТИЧАТ
Регистрация: 26.03.2007
Сообщений: 1,095
Провел на форуме: 5265510
Репутация:
455
|
|
Обработать событие catch. Как сделать на шарпе хз..
|
|
|

18.03.2010, 20:51
|
|
Познающий
Регистрация: 07.08.2009
Сообщений: 85
Провел на форуме: 705829
Репутация:
53
|
|
gold-goblin тут проблема в том, что catch выкинет с цикла ... Я сам не знаю... но есть такой вариант.
Код:
class Program
{
static void Main(string[] args)
{
ViewDirectory("C:\\Documents and Settings\\");
Console.Read();
}
static void ViewDirectory(string path)
{
try
{
DirectoryInfo dirs = new DirectoryInfo(path);
foreach (DirectoryInfo dir in dirs.GetDirectories())
{
Console.WriteLine(dir.ToString());
ViewDirectory(dir);
}
}
catch (Exception ex)
{
Console.WriteLine("\tWarn. Path: {0}", path);
}
}
}
Мне тоже интересно ищо варианты...
|
|
|

18.03.2010, 21:01
|
|
Новичок
Регистрация: 10.03.2010
Сообщений: 6
Провел на форуме: 17265
Репутация:
0
|
|
noxjoker мне этот код не очень подходит... Метод за пускает самого себя ...
Хорошо а может кто знает как получить список папок закрытых для чтения .... Зарание спасибо ....
|
|
|

18.03.2010, 21:28
|
|
Познающий
Регистрация: 13.03.2007
Сообщений: 32
Провел на форуме: 1259207
Репутация:
32
|
|
А если так?
PHP код:
DirectoryInfo dir = new DirectoryInfo(“C:\Documents and Settings”);
foreach (FileInfo file in dir.GetFiles(n_file,SearchOption.AllDirectories))
{
try
{
Console.WriteLine(file.FullName);
}
catch
{
continue;
}
}
|
|
|

19.03.2010, 06:45
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
>>gold-goblin тут проблема в том, что catch выкинет с цикла ...
ничего подобного.
и цикл через "и" пишется.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

19.03.2010, 11:40
|
|
Познающий
Регистрация: 07.08.2009
Сообщений: 85
Провел на форуме: 705829
Репутация:
53
|
|
>>gold-goblin тут проблема в том, что catch выкинет с цикла ...
ничего подобного.
Что нечего подобного ?
Код:
DirectoryInfo dir = new DirectoryInfo("C:\\Documents and Settings\\");
foreach (FileInfo file in dir.GetFiles("wand.dat", SearchOption.AllDirectories))
{
try
{
Console.WriteLine(file.FullName);
}
catch
{
// Когда он дойдет до папки которая закрыта для чтения в этот catch оно не попадет!
}
}
Код:
DirectoryInfo dir = new DirectoryInfo("C:\\Documents and Settings\\");
try
{
foreach (FileInfo file in dir.GetFiles("wand.dat", SearchOption.AllDirectories))
{
Console.WriteLine(file.FullName);
}
}
catch
{
// Когда он доходит до папки которая закрыта для чтения он попадает в catch и цыкл не продолжается.
}
Делаем вывод что catch не поможет.
|
|
|
здравствуйте дорогая редакция |

19.03.2010, 12:44
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
здравствуйте дорогая редакция
Сообщение от noxjoker
>>gold-goblin тут проблема в том, что catch выкинет с цикла ...
ничего подобного.
Что нечего подобного ?
Код:
DirectoryInfo dir = new DirectoryInfo("C:\\Documents and Settings\\");
foreach (FileInfo file in dir.GetFiles("wand.dat", SearchOption.AllDirectories))
{
try
{
Console.WriteLine(file.FullName);
}
catch
{
// Когда он дойдет до папки которая закрыта для чтения в этот catch оно не попадет!
}
}
<Удален недоскрин>
Код:
DirectoryInfo dir = new DirectoryInfo("C:\\Documents and Settings\\");
try
{
foreach (FileInfo file in dir.GetFiles("wand.dat", SearchOption.AllDirectories))
{
Console.WriteLine(file.FullName);
}
}
catch
{
// Когда он доходит до папки которая закрыта для чтения он попадает в catch и цыкл не продолжается.
}
<Удален недоскрин>
Делаем вывод что catch не поможет.
PHP код:
private static List<string> GetDirs(DirectoryInfo dir)
{
List<string> ad = new List<string>();
try
{
foreach (var directory in dir.GetDirectories())
{
ad.AddRange(GetDirs(directory));
}
}
catch (UnauthorizedAccessException)
{
ad.Add(dir.FullName);
}
return ad;
}
static void Main(string[] args)
{
DirectoryInfo dir = new DirectoryInfo("C:\\Documents and Settings\\");
List<string> result = GetDirs(dir);
foreach (var s in result)
{
Console.WriteLine(s);
}
Console.ReadKey();
}
делаем соответствующие выводы.
учите русский, смешно смотреть на ваши безграмотные посты.
P.S. зачетно на скринах замазал инфу

__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
Последний раз редактировалось W!z@rD; 19.03.2010 в 12:54..
|
|
|

20.03.2010, 05:31
|
|
Новичок
Регистрация: 28.01.2010
Сообщений: 15
Провел на форуме: 52119
Репутация:
17
|
|
Код:
using System;
using System.Collections.Generic;
using System.IO;
class Program
{
static void Main()
{
// Get all files in Documents
List<string> dirs = FileHelper.GetFilesRecursive(@"C:\Temp");
foreach (string p in dirs)
{
Console.WriteLine(p);
}
// Write count
Console.WriteLine("Count: {0}", dirs.Count);
Console.Read();
}
}
static class FileHelper
{
public static List<string> GetFilesRecursive(string b)
{
// 1.
// Store results in the file results list.
List<string> result = new List<string>();
// 2.
// Store a stack of our directories.
Stack<string> stack = new Stack<string>();
// 3.
// Add initial directory.
stack.Push(b);
// 4.
// Continue while there are directories to process
while (stack.Count > 0)
{
// A.
// Get top directory
string dir = stack.Pop();
try
{
// B
// Add all files at this directory to the result List.
result.AddRange(Directory.GetFiles(dir, "*.*"));
// C
// Add all directories at this directory.
foreach (string dn in Directory.GetDirectories(dir))
{
stack.Push(dn);
}
}
catch
{
// D
// Could not open the directory
}
}
return result;
}
}
Тут
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Сидит ли тут backdoor?
|
Buf |
АнтиАдмин |
6 |
17.08.2004 06:29 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|