Получить имя файла с системным вводом-выводом - PullRequest
0 голосов
/ 19 августа 2011

Я работаю над сценарием C #, который должен получить доступ к случайному файлу во время выполнения, проблема в том, что файлы генерируются на лету из другого источника, и у меня нет возможности узнать их имена, я решилПервая проблема, которая заключается в том, чтобы узнать, сколько файлов находится в моем рабочем каталоге:

            s = @"C:\Imagenes";
            System.IO.DirectoryInfo d = new System.IO.DirectoryInfo(s);
    int files;
    files = d.GetFiles().Length;
    Debug.Log(files.ToString());
    return files;

Теперь я хотел бы получить доступ к случайному элементу в моем рабочем каталоге, но так как я понятия не имею, что ихимена есть, есть ли способ получить их имена по индексу или что-то?

Ответы [ 4 ]

6 голосов
/ 19 августа 2011

DirectoryInfo.GetFiles предоставит вам массив объектов fileInfo.Из этого вы можете получить имя файла, используя FileInfo.Name

1 голос
/ 19 августа 2011

Вам необходимо использовать FileInfo объекты, возвращаемые d.GetFiles():

DirectoryInfo d = new DirectoryInfo("c:\\path");

foreach (FileInfo file in d.GetFiles())
{
    string name = file.Name;
}
0 голосов
/ 19 августа 2011

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

int length = d.GetFiles().Length;
Random rnd = new Random();
var randomFile = d.GetFiles().ElementAt(rnd.Next(0, length-1);
0 голосов
/ 19 августа 2011

1001 * попробовать *

FileInfo[] fileinfos = d.GetFiles();

foreach (FileInfo FI in fileinfos)
{
string fullname = FI.FullName;
string name = FI.Name;

// do someting...
}

см

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...