c# - 检查文件是否存在并且在 C# 中具有正确的命名标准

标签 c#

我们有一个来自第三方供应商的流程来每天删除销售和库存数据,并且可能有以下任何情况

  1. 放下正确的文件。 (命名标准:test.xls)

  2. 删除正确的文件但未遵循正确的命名标准。 (其他 名称可以是 test_mmddyyyy 或 testmmddyyyy)

  3. 没有文件丢失。

我正在尝试围绕这些场景构建我的逻辑,并坚持如何在文件存在但没有正确的命名标准时构建我的逻辑并检查这种情况并将文件的名称更改为适当的命名标准。

public void Main()
{
    try
    {
        string filefullpathname = @"C:\Temp\test.xls";

        if (File.Exists(filefullpathname) == false)
        {
            Console.WriteLine("File does not exist in the path");
        }

        // file exists but right naming standard not followed (Other names could be test_mmddyyyy or testmmddyyyy)
        // how to check for this condition and change the name of the file to the naming standard
        else
        {
            string dirname = @"C:\Temp\";
            DirectoryInfo directory = new DirectoryInfo(dirname);
            string filepartialname = "test";

            FileInfo[] fileindirectory = directory.GetFiles(filepartialname + "*");

            foreach (FileInfo filename in fileindirectory)
            {
                string fullname = filename.FullName;
                bool ind = Path.HasExtension(fullname);

                if (ind == false)
                {
                    File.Move(fullname, directory + filepartialname + ".xls");
                }
                else
                {
                    File.Move(fullname, directory + filepartialname + ".xls");
                }
            }
        }

        Dts.TaskResult = (int)ScriptResults.Success;
    }

    catch (Exception error)
    {
        Console.WriteLine(error);
    }
}

最佳答案

目前还不清楚是文件名还是缺少扩展名。所以我把两者都放进去了。

    public void Main()
    {
        try
        {
            string dirname = @"C:\Temp\";
            DirectoryInfo directory = new DirectoryInfo(dirname);
            string filepartialname = "test";

            FileInfo[] fileindirectory = directory.GetFiles(filepartialname + "*");

            foreach (FileInfo filename in fileindirectory)
            {
                if (filename.Extension == "")
                {
                    //doesn't have an extension                            
                }
                else if (!Regex.IsMatch(filename.Name.Replace(filename.Extension, ""), @"^[A-Z|a-z]$"))
                {
                    //contains more then just test
                }
                else
                {
                    //file is good
                }
            }
        }
        catch (Exception error)
        {
            Console.WriteLine(error);
        }
    }

关于c# - 检查文件是否存在并且在 C# 中具有正确的命名标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44711241/

相关文章:

c# - 获取 .NET Core JsonSerializer 以序列化私有(private)成员

c# - 混合 javascript 和内联服务器代码

c# - C#中的单行递增和返回语句

c# - 如何创建空字符串?

c# - 当我转到上一页时,所选图像的颜色不显示在 Collection View 中

c# - 如何在 NHibernate.Linq 中缓存 .Count() 查询?

c# - 如何在安装新版本期间强制部署项目更新文件?

c# - 保存当前进度或状态

c# - 使用 Google 文档 API

c# - Moq 中的匹配设置问题