当前位置: 首页 > 知识库问答 >
问题:

在文件夹中放置相同的文件类型

祁烨
2023-03-14

我在利用MagickNET和C#控制台。下面的代码找到所有的. EPS文件,然后将其转换为. jpg

foreach (string fileName in Directory.GetFiles("C:/Users/Adrian/Documents/Visual Studio 2010/Projects/ImageMagickTest/ImageMagickTest/bin/Debug/eps","*.eps"))
                {
                    using (MagickImage image = new MagickImage())
                    {
                        Console.WriteLine("\n\nNow Converting. Please Wait...\n\n");
                        image.Read(fileName, settings);
                        image.Write(fileName.Substring(0,fileName.Length - 3) + ".jpg");
                        i++;
                        Console.WriteLine("Conversion Success.\n\n");
                        Console.WriteLine("Files Converted: " + i); 
                    }
                }

现在,我想把.eps和.jpg分开。例如:

文件夹内容:

  • 图1.每股收益

在执行循环之后。文件夹/eps/的内容将是:

  • image1.eps
  • image2.eps
  • image1.jpg
  • image2.jpg

我将如何放置. jpg在不同的文件夹?

共有3个答案

从景曜
2023-03-14

例如。

// Set the source folder to whatever.
var sourceFolderPath = "...";

// Create the destination folder path by removing the leaf folder name and replacing it with another.
var destinationFolderPath = Path.Combine(Path.GetDirectoryName(sourceFolderPath), "jpg");

foreach (var sourceFilePath in Directory.GetFiles(sourceFolderPath, "*.eps"))
{
    // Build the destination file path from the desitination folder path, file name and a new extension.
    var destinationFilePath = Path.ChangeExtension(Path.Combine(destinationFolderPath, Path.GetFileName(sourceFilePath)), ".jpg");

    // Use destinationFilePath here.
}
芮宇航
2023-03-14

我想这个代码会给你你想要的

foreach (string fileName in Directory.GetFiles("Folder","*.eps"))
            {
                using (MagickImage image = new MagickImage())
                {
                    Console.WriteLine("\n\nNow Converting. Please Wait...\n\n");
                    image.Read(fileName, settings);
                    string[] split = filename.Split('\\');
                    string clear_file_name = split[split.Length-1];
                    string split_file_name= clear_file_name.split('.');
                    string filename_without_extention = split_file_name[0];  
                    if(!Directory.Exists(folder+"\\jpeg"))
                        Directory.Create(folder+"\\jpeg");
                    image.Write(fileName.Substring(0,folder+"\\jpeg\\"+file_name_without_extention+".jpg");
                    i++;
                    Console.WriteLine("Conversion Success.\n\n");
                    Console.WriteLine("Files Converted: " + i); 
                }
            }
富钧
2023-03-14

我假设你想要一个jpg文件夹?添加此选项可在foreach循环之前创建文件夹。

       if (!Directory.Exists("C:/Users/Adrian/Documents/Visual Studio 2010/Projects/ImageMagickTest/ImageMagickTest/bin/Debug/jpg"))
       {
           Directory.CreateDirectory("C:/Users/Adrian/Documents/Visual Studio 2010/Projects/ImageMagickTest/ImageMagickTest/bin/Debug/jpg");
       }

我还假设图像。写将实际创建文件,如果是这样,那么您可以更改以下行

image.Write(fileName.Substring(0,fileName.Length - 3) + ".jpg");

像这样

image.Write(fileName.Substring(0,fileName.Length - 7) + "jpg/.jpg");
 类似资料:
  • 我有100个不同名称的文件夹,每个文件夹中应该有相同的三个文件,但在某些文件夹中,这三个文件都不存在。 如何删除空文件夹或仅包含一个或两个文件的文件夹? 这是三个文件:

  • 我对Springs@Configuration和@Conditional annotation是新手。我在问自己,在我的maven文件夹结构中,这些配置java文件应该放在哪里。 到目前为止,我将所有配置xml文件放入src/main|test/Resources/但是使用这种新方法,不再有xml文件。 谢啦

  • 有一个spring boot应用程序,我尝试在S3目标存储桶的文件夹中放置一个文件。目标bucket/targetsystem文件夹/文件。csv 将从yml配置文件检索的每个文件的targetsystem文件夹名称将不同。 如果该文件夹未退出,则必须通过代码创建targetsystem文件夹,并将文件放在该文件夹下 据我所知,在S3桶中没有文件夹概念,所有文件都存储为对象。 阅读了一些文档,比如

  • 我有两个类,它们具有相同的类名并使用相同的包名。但是,这两个类文件位于不同的目录中。这两个类之间的另一个不同之处是,每个类中都有其他类中没有的方法。本质上,我想将这些方法拆分为两个使用相同名称但不同文件夹的单独文件。 理论上,我认为这是可能的,因为Java编译器在构建输出时确实维护了目录结构。所以在运行时,如果在类中调用了一个方法,Java可能会在任何一个文件中找到该方法。 这可能吗?我使用的是I

  • 问题内容: 我正在尝试仅将原始文件从一个目录复制到另一个目录,但是某些文件具有相同的名称…我正在尝试使用哈希来比较文件,如果其不在目录中发送并且名称相同,它到file_name.something。目前,我正在获取一些文件,并且具有相同名称的文件正在被覆盖…任何人都可以提出建议吗? 问题答案: 您将哈希与文件名进行比较。你需要类似的东西 计算目标文件夹中每个文件的哈希值。 此外,在当前版本中,您的

  • 问题内容: 我正在做一个大项目,该项目很可能最终包含成千上万行代码,对于当前结构,我喜欢这样: 这样做的问题是controllers和models目录包含很多文件,全部使用和。因此,我正在考虑将其拆分为: 凡在控制器包的用户文件中可能包含的文件,等等。 现在,我读到像或那样的软件包是不好的做法,但是我担心对这两个软件包进行命名可能不是一个好主意,因为它们是同一项目的一部分(即使它们位于不同的目录中