【问题标题】:Buffer file names in a given directory给定目录中的缓冲区文件名
【发布时间】:2012-04-27 15:52:10
【问题描述】:

我正在尝试找到一种方法来缓冲 C# 中给定目录中的文件名。我的意思是:

给定目录

C:/MyDir

其中包含文件:

文件1_orig.txt

文件1_edited.txt

文件2_orig.txt

File2_edited.txt

...

Filen_orig.txt

Filen_edited.txt

我想将文件名(不是整个文件路径,只是文件名,例如 String[] filename = Filen_orig.txt)存储到临时字符串中,并对它们进行简单比较以查看它们是否包含目标字符串。

我想将字符串传递到:

while(STILL FILES IN DIRECTORY)
{
    string[] exFileName = {BUFFER FILENAME HERE}
    string[] words = exFileName.Split('_');
    string[] toCompare = "edited";
            bool result;
            foreach (string word in words)
            {
                Console.WriteLine(word);
                bool result = toCompare.Equals(word, StringComparison.OrdinalIgnoreCase);
                if (result)
                {
                    Console.WriteLine("success");
                }
            }
            Console.ReadLine();

检查正在检查的文件是被编辑过的 (*_edited.txt) 还是原始文件 (*_original.txt),如果文件被编辑过,则进一步处理该文件。

有人知道如何自动读取文件路径吗?

非常感谢。

【问题讨论】:

  • 不清楚你在这里问什么 - 你想自己缓冲文件名吗?还是文件的内容?无论哪种方式,您在这里的所有问题似乎都是“我如何存储字符串列表?”最有可能的答案是:List<string>!

标签: c# file-io bufferedreader


【解决方案1】:

如果要查看是否有文件包含 _edited 位,可以使用:

bool success = Directory.GetFiles(@"c:\MyDir").Any(p => p.Contains("_edited"));

我猜测这就是你想要的,因为你的代码不是很清楚(你的描述也不是)

编辑:显示所有已编辑的文件:

            foreach(var file in Directory.GetFiles(@"c:\MyDir").Where(p => p.Contains("_edited")))
        {
            Console.WriteLine(" {0}: edited", file);
        }

另外,必须使用“System.Linq”

【讨论】:

  • 你不会碰巧知道是否有 ContainsIgnoreCase 函数吗?我似乎不能罚款一个。我应该将所有字符串都转换为Lower还是toUpper?
  • 我个人会使用 ToLower 但可能有更快的方法... p.ToLower().Contains("_edited") 在这种情况下。 IMO 使用对您阅读最有意义的任何内容,速度差异可能非常小。
【解决方案2】:

DirectoryInfo.GetFiles怎么样?

DirectoryInfo di = new DirectoryInfo(@"c:\");

// Get only subdirectories that contain the letter "p."
FileInfo[] files= di.GetFiles("*.txt");

foreach (FileInfo fi in files) 
{
   string exFileName = fi.FileName;
  ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2021-07-07
    • 2016-02-19
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多