現在のユーザーのデスクトップに表示される「すべてのユーザー」デスクトップの一部であるファイルを一覧表示する次の C# .NET 4 コードがあります。
foreach (String desktopFilePath in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory)))
{
Console.WriteLine(desktopFilePath);
}
例えば:
C:\Documents and Settings\All Users\Desktop\SomeShortcut.lnk
ショートカットの例を使用していることに注意してください。ただし、これは他の種類のファイルでも同じであると予想されます。
私がやりたいことは、デスクトップからこのファイルを削除する現在のユーザーを模倣することです (ログアウトして再度ログインすると、再び表示されます)。
SpecialFolder.Desktop を使用すると、このファイルが一覧表示されることを期待していました。これは、物理デスクトップではなく論理デスクトップを参照する必要があるためです。しかし、そうではありません。
たとえば、これは上記のファイルをリストしません。
Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Desktop))
では、このファイルの「論理」バージョンを削除するにはどうすればよいでしょうか。