如何过滤多个分机?
我试过了:
FileInfo[] Files = dinfo.GetFiles("*.jpg;*.tiff;*.bmp");
FileInfo[] Files = dinfo.GetFiles("*.jpg,*.tiff,*.bmp");
Run Code Online (Sandbox Code Playgroud) 我试图显示在所选目录(以及可选的任何子目录)中找到的所有文件的列表.我遇到的问题是,当GetFiles()方法遇到无法访问的文件夹时,它会抛出异常并且进程停止.
如何忽略此异常(并忽略受保护的文件夹/文件)并继续将可访问文件添加到列表中?
try
{
if (cbSubFolders.Checked == false)
{
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
foreach (string fileName in files)
ProcessFile(fileName);
}
else
{
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);
foreach (string fileName in files)
ProcessFile(fileName);
}
lblNumberOfFilesDisplay.Enabled = true;
}
catch (UnauthorizedAccessException) { }
finally {}
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何使用c#仅获取目录中的文件名?
使用C#,我想获取文件夹中的文件列表.
我的目标:["file1.txt", "file2.txt"]
所以我写了这个:
string[] files = Directory.GetFiles(dir);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到了这个输出: ["C:\\dir\\file1.txt", "C:\\dir\\file2.txt"]
之后我可以删除不需要的"C:\ dir \"部分,但有更优雅的解决方案吗?
我的目录包含*.wav格式的近14,000,000个音频样本.
所有普通存储,没有子目录.
我想循环遍历文件,但是当我DirectoryInfo.GetFiles()在该文件夹上使用时,整个应用程序冻结了几分钟!
这可以换一种方式吗?也许阅读1000,处理它们,然后采取下一个1000,依此类推?
有没有办法简化这个linq表达式,还是有更好的方法来做到这一点?
Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) ||
s.EndsWith(".gif", StringComparison.OrdinalIgnoreCase) ||
s.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||
...);
Run Code Online (Sandbox Code Playgroud)
基本上我想返回某个扩展名的所有文件.不幸的是,这种方法不是很灵活.我宁愿能够在列表中添加扩展名,并让Directory.GetFiles返回这些扩展名.那可能吗?
我有这个代码列出目录中的所有文件.
class GetTypesProfiler
{
static List<Data> Test()
{
List<Data> dataList = new List<Data>();
string folder = @"DIRECTORY";
Console.Write("------------------------------------------\n");
var files = Directory.GetFiles(folder, "*.dll");
Stopwatch sw;
foreach (var file in files)
{
string fileName = Path.GetFileName(file);
var fileinfo = new FileInfo(file);
long fileSize = fileinfo.Length;
Console.WriteLine("{0}/{1}", fileName, fileSize);
}
return dataList;
}
static void Main()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
我需要根据文件大小或字母顺序打印出文件信息.如何从Directory.GetFiles()中对结果进行排序?
Directory.GetFiles方法在第一次遇到没有访问权限的文件夹时失败.
该方法抛出一个UnauthorizedAccessException(可以捕获),但到此时,该方法已经失败/终止.
我正在使用的代码如下:
try
{
// looks in stated directory and returns the path of all files found
getFiles = Directory.GetFiles(
@directoryToSearch,
filetype,
SearchOption.AllDirectories);
}
catch (UnauthorizedAccessException)
{
}
Run Code Online (Sandbox Code Playgroud)
据我所知,没有办法事先检查某个文件夹是否具有定义的访问权限.
在我的示例中,我正在通过网络搜索磁盘,当我遇到仅限root访问权限的文件夹时,我的程序失败了.
我只是偶然发现了这些GetFiles方法的无证行为System.IO.Directory.
每当searchPattern传递给方法的参数包含保留的Windows设备名称(例如"nul.*"或)时"aux.bmp",该方法返回一个包含不存在的文件名称的数组,如C:\Users\ft1\nul或D:\aux等.
我想知道那些设备名称是否具有特殊含义的上下文,如"." 或"..",或者如果这只是一种错误.无论如何,这看起来仍然很奇怪.例如,C#中的这段代码片段:
string[] fileNames = Directory.GetFiles(@"C:\D:\..\..\...\", "con.txt");
foreach (string fileName in fileNames) Console.WriteLine(fileName);
Run Code Online (Sandbox Code Playgroud)
版画
C:\D:\..\..\...\con
Run Code Online (Sandbox Code Playgroud)
有线索吗?
我在我的网站的私人部分做了一个功能,以获取并显示存储库的一些文件.
以下是我做的功能:
function getFilesChantier($devis, $cp) {
// Si dossier cp n'existe pas on le créé
if (!file_exists(_DOCS_ . 'C' . $cp)) {
mkdir(_DOCS_ . 'C' . $cp, 0777, true);
fopen(_DOCS_ . 'C' . $cp . '/index.html', w);
}
if (!file_exists(_DOCS_ . 'C' . $cp . '/' . $devis)) {
mkdir(_DOCS_ . 'C' . $cp . '/' . $devis, 0777, true);
fopen(_DOCS_ . 'C' . $cp . '/' . $devis . '/index.html', w);
}
//On liste les fichiers pdf
$repertoire = …Run Code Online (Sandbox Code Playgroud) 我的功能有点问题.我想在许多目录中获取所有文件.目前,我可以检索传入参数的文件中的文件.我想检索作为参数传递的文件夹中每个文件夹的html文件.我将解释如果我输入参数"test"我检索"test"中的文件,但我想检索"test/1/*.html","test/2 / ./ .html":
var srcpath2 = path.join('.', 'diapo', result);
function getDirectories(srcpath2) {
return fs.readdirSync(srcpath2).filter(function (file) {
return fs.statSync(path.join(srcpath2, file)).isDirectory();
});
}
Run Code Online (Sandbox Code Playgroud)
结果:[1,2,3]
谢谢 !