在目录中打开随机文件(在 cmd 中?)- 类 C++ 还是类 C#?
Open random file in directory (in cmd?) - C++-like or C#-like?
我编写 C# (.NET) 程序和 C++(在 Notepad++ 中)脚本。
我想编写一个程序,在 运行 所在的目录中打开一个随机文件,在 windows 上使用 cmd。 例如:
C:\test > random
将打开 C:\test\song1.mp3 或 C:\test\song2.mp3
这可能吗?
如果是,我应该使用哪种语言:C++ 还是 C#? (否则)
(不是什么更好,以免我的问题被感动,而是什么更合适)
C++ 是否支持文件系统? (找不到任何简单的库)
它能知道它 运行 在哪个目录吗?
C# 可以是来自 cmd 的 运行 吗?或者它是 IDE 依赖的,因此是不可能的?
如果没有,(没有编译就无法从cmd 运行)我更喜欢写一个windows形式 项目。
又来了,C#.NET 还是 C++Builder? (否则)
(再说一遍,不是更好,而是更合适)
对不起我的无能。感谢反馈。
(欢迎大家提出更好的意见)
也可以在 c# 和 c++ 中完成。
在 c++ 中,您可以使用 FindFirstFile 和 FindNextFile API 来查找文件。
这是可能的。这里的方案(C#实现):
从当前目录获取所有文件
var files = Directory
.EnumerateFiles(Directory.GetCurrentDirectory())
//.Where(file => ...) // <- to filter out some files
.ToList();
从files
获取随机文件:
private static Random s_Generator = new Random();
...
String file = files[s_Generator.Next(files.Count)];
要打开 file
,请注意 shell 执行 模式:让 Window 了解文件的打开方式(即 txt
通过记事本,mp3
通过媒体播放器等)
ProcessStartInfo info = new ProcessStartInfo(file) {
UseShellExecute = true
};
using (var process = Process.Start(info)) {
//process.WaitForExit(); // <- to wait for
}
我编写 C# (.NET) 程序和 C++(在 Notepad++ 中)脚本。
我想编写一个程序,在 运行 所在的目录中打开一个随机文件,在 windows 上使用 cmd。 例如:
C:\test > random
将打开 C:\test\song1.mp3 或 C:\test\song2.mp3
这可能吗?
如果是,我应该使用哪种语言:C++ 还是 C#? (否则)
(不是什么更好,以免我的问题被感动,而是什么更合适)
C++ 是否支持文件系统? (找不到任何简单的库)
它能知道它 运行 在哪个目录吗?
C# 可以是来自 cmd 的 运行 吗?或者它是 IDE 依赖的,因此是不可能的?
如果没有,(没有编译就无法从cmd 运行)我更喜欢写一个windows形式 项目。
又来了,C#.NET 还是 C++Builder? (否则)
(再说一遍,不是更好,而是更合适)
对不起我的无能。感谢反馈。
(欢迎大家提出更好的意见)
也可以在 c# 和 c++ 中完成。
在 c++ 中,您可以使用 FindFirstFile 和 FindNextFile API 来查找文件。
这是可能的。这里的方案(C#实现):
从当前目录获取所有文件
var files = Directory
.EnumerateFiles(Directory.GetCurrentDirectory())
//.Where(file => ...) // <- to filter out some files
.ToList();
从files
获取随机文件:
private static Random s_Generator = new Random();
...
String file = files[s_Generator.Next(files.Count)];
要打开 file
,请注意 shell 执行 模式:让 Window 了解文件的打开方式(即 txt
通过记事本,mp3
通过媒体播放器等)
ProcessStartInfo info = new ProcessStartInfo(file) {
UseShellExecute = true
};
using (var process = Process.Start(info)) {
//process.WaitForExit(); // <- to wait for
}