如果文件名中存在 #2 或 #3 或 #(任意数字),则跳过文件重命名对话

mallu 加密书呆子

下面是我的代码,我成功地仅重命名 aa 文件夹中的文件,并在每个子文件夹中爬行并重命名整个 .png 文件。

我正在尝试添加自定义,如果文件名已经获得 #1 或 #5 或任何 #(number) 那么我希望对话跳过该文件并转到下一个文件

private void button1_Click(object sender, EventArgs e)
    {
        FolderBrowserDialog folderDlg = new FolderBrowserDialog();
        //folderDlg.ShowDialog();
        if (folderDlg.ShowDialog() != DialogResult.OK)
        {
            return;
        }

        // Has different framework dependend implementations 
        // in order to handle unauthorized access to subfolders
        RenameAllPngFiles(folderDlg.SelectedPath);
    }
    private void RenameAllPngFiles(string directoryPath)
    {
        RenameCurrentPng(directoryPath);
        foreach (var item in GetDirectoryInfos(directoryPath))
        {
            RenameCurrentPng(item.FullName);
        }
    }

    private void RenameCurrentPng(string directoryPath)
    {
        int fileNameSuffixCounter = 1;
        foreach (string originalFullFileName in Directory.EnumerateFiles(directoryPath, "*.png"))
        {
            // The new file name without path
            var newFileName = $"{System.IO.Path.GetFileNameWithoutExtension(originalFullFileName)}#{fileNameSuffixCounter++}{System.IO.Path.GetExtension(originalFullFileName)}";
            FileSystem.RenameFile(originalFullFileName, newFileName);
        }
    }

    private DirectoryInfo[] GetDirectoryInfos(string directoryPath)
    {
        DirectoryInfo di = new DirectoryInfo(directoryPath);
        DirectoryInfo[] directories = di.GetDirectories("*", System.IO.SearchOption.AllDirectories);
        return directories;
    }
玛丽

只需使用 String.Contains 方法来检查 #。

    private void RenameCurrentPng(string directoryPath)
    {
        int fileNameSuffixCounter = 1;
        foreach (string originalFullFileName in Directory.EnumerateFiles(directoryPath, "*.png"))
        {
            string ShortFileName = System.IO.Path.GetFileNameWithoutExtension(originalFullFileName);
            if (!ShortFileName.Contains("#"))
            { 
            // The new file name without path
            var newFileName = $"{ShortFileName}#{fileNameSuffixCounter++}{System.IO.Path.GetExtension(originalFullFileName)}";
            FileSystem.RenameFile(originalFullFileName, newFileName);
            }
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建新文件,但如果bash中已经存在文件名,则添加数字

Python将文件复制到新目录,如果文件名已存在,则重命名

用于替换文件名(如果存在)的脚本?

通过客户端对象模型在SharePoint中重命名文件时,如果文件名和文件名之间存在点号,则文件名将被修剪

重命名项目并覆盖是否存在文件名

如果文件存在,如何增加文件名

Python-大文件名重命名错误(Win错误3)

比较2个jar文件中的文件名?

为什么在typo3中重命名文件名会创建新关系

重命名文件名

如果文件在c#中已经存在,则增加文件名

如何在脚本python3中递归重命名子目录和文件名?

批量重命名,添加额外的“。” 递归地位于文件名中位置3处的字符

从文件名中删除特定(已知)扩展名(如果存在)

如何使用重命名工具将2位数字作为文件名?

PHP重命名文件名(如果存在)

如果使用Java SDK在s3中已经存在,则自动重命名文件

如果目录中不存在文件名,则查找命令

如何删除文件名中包含数字“ 3”或“ 2”的文件?

重命名mp3文件以删除数字扩展名

如何通过在文件名中的任意位置填充数字来重命名文件?

SSIS FOREACH:如果文件名已存在,则从 SQL 表中删除数据

如何使用python显示2个目录中存在的文件名?

在 PowerShell 中重命名文件名

重命名随机以文件名结尾的 mp3 文件

如何从文件名的大数组中测试文件是否存在,如果文件名不以一致的方式存在,则从数组中删除文件名?

如果文件已存在于javascript中,如何增加文件名

如何检查对象是否存在或文件名在 s3 存储桶中匹配?

如果文件存在于内部存储中,则为文件名添加后缀