.NET 8 for Dockerの特殊ディレクトリのパス

提供:MonoBook

ベースイメージ[編集 | ソースを編集]

マイクロソフト謹製のdockerイメージを使用してます。普通のLinuxです。

FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
WORKDIR /app

.NET 6や.NET 7は試していません。

結果[編集 | ソースを編集]

SpecialFolder .NET 8 for Docker
Desktop
Programs
MyDocuments
MyDocuments
Favorites
Startup
Recent
SendTo
StartMenu
MyMusic
MyVideos
DesktopDirectory
MyComputer
NetworkShortcuts
Fonts
Templates
CommonStartMenu
CommonPrograms
CommonStartup
CommonDesktopDirectory
ApplicationData
PrinterShortcuts
LocalApplicationData
InternetCache
Cookies
History
CommonApplicationData /usr/share
Windows
System
ProgramFiles
MyPictures
UserProfile /root
SystemX86
ProgramFilesX86
CommonProgramFiles
CommonProgramFilesX86
CommonTemplates
CommonDocuments
CommonAdminTools
AdminTools
CommonMusic
CommonPictures
CommonVideos
Resources
LocalizedResources
CommonOemLinks
CDBurning

解説[編集 | ソースを編集]

docker版ではCommonApplicationDataとUserProfileしか返ってきません。

  • dockerイメージ上にファイルは保存するな
  • docker-composeでボリュームを明示してそこに保存しろ

ということでしょう。

コード[編集 | ソースを編集]

foreach (var folder in Enum.GetValues(typeof(Environment.SpecialFolder)))
{
    var path = Environment.GetFolderPath((Environment.SpecialFolder)folder);
    Console.WriteLine($"{folder} => {path}");
}