-2

フォルダーに次のような名前のファイルがあります。

"C:\\Users\\John\\Documents\\333\\12.html"

2.html が 10.html の前に来るように並べ替える方法は?

4

3 に答える 3

3

ファイルを並べ替えるときに、文字列を数値として解析します。

例:

string[] files = {
  "2.html",
  "10.html",
  "1.html"
};

files =
  files.OrderBy(s => Int32.Parse(s.Substring(0, s.IndexOf('.'))))
  .ToArray();
于 2012-04-19T12:34:56.540 に答える
2
    Directory
      .GetFiles()
      .OrderBy(f => int.Parse(Path.GetFileNameWithoutExtension(f)) )
于 2012-04-19T12:35:22.250 に答える
0

この投稿を見てください -

http://www.codeproject.com/Articles/11016/Numeric-String-Sort-in-C

string[] files = System.IO.Directory.GetFiles();

NumericComparer ns = new NumericComparer();
Array.Sort(files, ns);

// files will now sorted in the numeric order
// we can do the same for directories

string[] dirs = System.IO.Directory.GetDirectories();
ns = new NumericComparer(); // new object
Array.Sort(dirs, ns);

public class NumericComparer : IComparer
    {
        public NumericComparer()
        {}

        public int Compare(object x, object y)
        {
            if((x is string) && (y is string))
            {
                return StringLogicalComparer.Compare((string)x, (string)y);
            }
            return -1;
        }
    }//EOC
于 2012-04-19T12:32:49.800 に答える