我正在创建一个软件,我需要你的帮助。 我需要找到一个随机生成名称的文件夹。 它在C:\ MyFolder \ 123456789
中创建我想将文件夹名称存储在字符串中。 有时可以创建另一个文件夹,但我不想存储它
C:\ MyFolder文件\ 123456789
C:\ MyFolder文件\ MySecondFolder
我只想存储
C:\ MyFolder \ 123456789字符串。
我试过了:
string MyFolder = Path.GetFileName(C:\MyFolder);
MessageBox.Show(MyFolder);
但没有。 在此先感谢您的帮助!
答案 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