查找仅包含数字

时间:2016-05-22 20:10:51

标签: c#

我正在创建一个软件,我需要你的帮助。 我需要找到一个随机生成名称的文件夹。 它在C:\ MyFolder \ 123456789

中创建

我想将文件夹名称存储在字符串中。 有时可以创建另一个文件夹,但我不想存储它

C:\ MyFolder文件\ 123456789

C:\ MyFolder文件\ MySecondFolder

我只想存储

C:\ MyFolder \ 123456789字符串。

我试过了:

string MyFolder = Path.GetFileName(C:\MyFolder); MessageBox.Show(MyFolder);

但没有。 在此先感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

怎么样:

DirectoryInfo dirInfo = new DirectoryInfo(@"C:\MyFolder");
string direcotryName = dirInfo.Name;

编辑: 我想我理解你的问题

你想找到包含数字的目录 - 对吗?

DirectoryInfo dirInfo = new DirectoryInfo(@"C:\MyFolder");

int parsedInt;

DirectoryInfo foundDirectory = dirInfo.GetDirectories()
    .FirstOrDefault(di => int.TryParse(di.Name, out parsedInt));
 if (foundDirectory != null)
{
    MessageBox.Show(foundDirectory.Name)
}

EDIT2: 支持更长的文件夹:

DirectoryInfo dirInfo = new DirectoryInfo(@"C:\MyFolder");

DirectoryInfo foundDirectory = dirInfo.GetDirectories()
    .FirstOrDefault(di => di.Name.All(char.IsNumber));

答案 1 :(得分:0)

试试这个:

var nameLength = 10;
var rnd = new Random();
var randomName = string.Join("", Enumerable.Range(1, nameLength).Select(a => rnd.Next(0, 9).ToString()));
var path = Path.Combine(@"C:\MyFolder", randomName);

答案 2 :(得分:0)

您应该使用Directory.EnumerateDirectories并使用long.TryParse

测试目录名称
var folder = new DirectoryInfo(@"C:\MyFolder");
long findFile;
var results = folder.EnumerateDirectories().Where(dir => long.TryParse(dir.Name, out findFile));

答案 3 :(得分:0)

max   nb of warnings
1     no warning
2     1
3     3
4     6
5     10
6     15
7     21
8     28
9     36
10    45