実現したいこと
C#で複数フォルダの更新日を取得したい
発生している問題・分からないこと
C#で複数フォルダの更新日を取得したいがエラーが出る
エラーメッセージ
error
1引数 1: は 'System.DateTime' から 'System.Array' へ変換することはできません 2不適切な配列の宣言子: マネージ配列を宣言するには、次元指定子を変数の識別子の前に指定します。固定サイズ バッファー フィールドを宣言するには、フィールド型の前に fixed キーワードを使用します。
該当のソースコード
C#
1private void delete() 2{ 3 string[] direc = Directory.GetDirectories(@"C:\"); 4 5 for (int i = 0; i < direc.Length; i++) 6 { 7 DateTime dirsx[] = Directory.GetLastWriteTime(direc[i]); 8 Array.Sort(dirsx); 9 10 } 11 12}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
補足
特になし
private void delete()
{
/*string[] direc = Directory.GetDirectories(@"C:\");
for (int i = 0; i < direc.Length; i++)
{
DateTime dirsx[] = Directory.GetLastWriteTime(direc[i]);
Array.Sort(dirsx);
}*/
var root = new DirectoryInfo(@"C:\");
foreach (DirectoryInfo dirInfo in root.EnumerateDirectories().OrderBy(p => p.LastWriteTime))
{
var oldest = root.EnumerateDirectories().OrderBy(p => p.LastWriteTime).FirstOrDefault();
//MessageBox.Show($"{dirInfo.FullName} {dirInfo.LastWriteTime}");
Directory.Delete($"{oldest.FullName}", true);
}
}
すべてのディレクトリが消えてしまうのですが
最古のディレクトリのみ消すのであればループは必要ありません。
ご自身が書いたコードがどのように動いているか確認してみましょう。
「初心者向けのデバッグ」
https://learn.microsoft.com/ja-jp/visualstudio/debugger/debugging-absolute-beginners?view=vs-2022&tabs=csharp

回答1件
あなたの回答
tips
プレビュー