Onedrive 上のファイルの情報の取得

タグの編集
投稿者 N88-Basic  (社会人) 投稿日時 2019/11/12 15:56:00
Windows 10 Home(64) + Visual Studio 19 にてアプリを作成しております。
この度、Windows 10 添付の Onedrive アプリ(ストア版ではない)の利用を始めました。

この状態で、Onedriveフォルダ内の一部のファイルの属性「このデバイス上で常に保持する」のチェックボックスを外したファイルを排除(Directory.GetFiles 等でファイ名を取得しない)方法や属性を取得する方法をご存じでしたらご教授ください。

以上、よろしくお願いいたします。

投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/11/12 18:29:17
OneDrive が有効な環境が手元になかったので確認していませんが、
FileInfo.Attributes または File.GetAttributes で判定できないでしょうか。
https://dobon.net/vb/dotnet/file/fileattributes.html
https://stackoverflow.com/questions/54560454/getting-full-file-attributes-for-files-managed-by-microsoft-onedrive
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/11/12 19:19:28
関連情報としてこのあたりも。PowerShell ですけれども。
https://github.com/dotnet/corefx/issues/33644

すぐに確認できる環境が当方に無いので、各ファイルの属性値が
どのように返されるのか、実環境での結果を教えてもらえるとうれしいです。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/11/12 19:39:59
> Visual Studio 19

2 桁表記にすると、意味が変わってくるので御注意を。


Visual Studio 16  →  Visual Studio 2019 のこと
Visual Studio 15  →  Visual Studio 2017 のこと
Visual Studio 14  →  Visual Studio 2015 のこと
Visual Studio 12  →  Visual Studio 2013 のこと
Visual Studio 11  →  Visual Studio 2012 のこと
Visual Studio 10  →  Visual Studio 2010 のこと
Visual Studio 9   →  Visual Studio 2008 のこと
Visual Studio 8   →  Visual Studio 2005 のこと
Visual Studio 7.1 →  Visual Studio.NET 2003 のこと
Visual Studio 7   →  Visual Studio.NET のこと

※これよりは前は、 .NET 非対応な Visual Studio 6.0 と Visual Studio 97 のみ。
投稿者 N88-BASIC  (社会人) 投稿日時 2019/11/13 10:20:43
魔界の仮面弁士 さま、ご回答ありがとうございます。
System.IO.File.GetAttributes(filename) で属性の種類のみを見ていたため気づかなかったようです。
値そのものをチェックしてみると違うようですので、それで判断できそうです。
ただ、値の違いが何を意味するかは不明ですが…。
サイズは実態なしの方はプロパティではディスク上のサイズがゼロのために調べたものです。
また、開発アプリ名の記述には注意いたします。ご指摘ありがとうございました。

以下、チェック内容をご報告いたします。

実体あり
C:\Users\user\OneDrive\Pictures\PhotoWork\271_0906\IMGP3789.JPG
Attributes=00080020
Size=13704153Byte
Archive:True
Compressed:False
Device:False
Directory:False
Encrypted:False
Hidden:False
IntegrityStream:False
Normal:False
NoScrubData:False
NotContentIndexed:False
Offline:False
ReadOnly:False
ReparsePoint:False
SparseFile:False
System:False
Temporary:False
実体なし
C:\Users\user\OneDrive\Pictures\MyPhoto\DCIM\271_0906\IMGP3789.JPG
Attributes=00400020
Size=13704153Byte
Archive:True
Compressed:False
Device:False
Directory:False
Encrypted:False
Hidden:False
IntegrityStream:False
Normal:False
NoScrubData:False
NotContentIndexed:False
Offline:False
ReadOnly:False
ReparsePoint:False
SparseFile:False
System:False
Temporary:False

以上
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/11/13 12:03:54
> 実体あり
> Attributes=00080020

> 実体なし
> Attributes=00400020

FileAttributes で未定義の列挙値が含まれていますね。

┏━━┯━━┳━━━━━━━━━━━━━━━━━━┯━━━━━┓
┃前者│後者┃winnt.h で定義されている定数名      │定数値    ┃
┣━━┿━━╋━━━━━━━━━━━━━━━━━━┿━━━━━┫
┃    │    ┃FILE_ATTRIBUTE_READONLY             │0x00000001┃
┃    │    ┃FILE_ATTRIBUTE_HIDDEN               │0x00000002┃
┃    │    ┃FILE_ATTRIBUTE_SYSTEM               │0x00000004┃
┃    │    ┃FILE_ATTRIBUTE_DIRECTORY            │0x00000010┃
┃ ★ │ ★ ┃FILE_ATTRIBUTE_ARCHIVE              │0x00000020┃
┃    │    ┃FILE_ATTRIBUTE_DEVICE               │0x00000040┃
┃    │    ┃FILE_ATTRIBUTE_NORMAL               │0x00000080┃
┃    │    ┃FILE_ATTRIBUTE_TEMPORARY            │0x00000100┃
┃    │    ┃FILE_ATTRIBUTE_SPARSE_FILE          │0x00000200┃
┃    │    ┃FILE_ATTRIBUTE_REPARSE_POINT        │0x00000400┃
┃    │    ┃FILE_ATTRIBUTE_COMPRESSED           │0x00000800┃
┃    │    ┃FILE_ATTRIBUTE_OFFLINE              │0x00001000┃
┃    │    ┃FILE_ATTRIBUTE_NOT_CONTENT_INDEXED  │0x00002000┃
┃    │    ┃FILE_ATTRIBUTE_ENCRYPTED            │0x00004000┃
┃    │    ┃FILE_ATTRIBUTE_INTEGRITY_STREAM     │0x00008000┃
┃    │    ┃FILE_ATTRIBUTE_VIRTUAL              │0x00010000┃
┃    │    ┃FILE_ATTRIBUTE_NO_SCRUB_DATA        │0x00020000┃
┃    │    ┃FILE_ATTRIBUTE_EA                   │0x00040000┃
┃    │    ┃FILE_ATTRIBUTE_RECALL_ON_OPEN       │0x00040000┃
┃    │ ★ ┃FILE_ATTRIBUTE_PINNED               │0x00080000┃
┃    │    ┃FILE_ATTRIBUTE_UNPINNED             │0x00100000┃
┃ ★ │    ┃FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS│0x00400000┃
┗━━┷━━┻━━━━━━━━━━━━━━━━━━┷━━━━━┛


https://referencesource.microsoft.com/#mscorlib/system/io/fileattributes.cs
https://source.dot.net/#System.Runtime/System/IO/FileAttributes.cs
投稿者 N88-BASIC  (社会人) 投稿日時 2019/11/13 18:02:43
魔界の仮面弁士 さん、ご調査いただきありがとうございました。

ご提供いただいた情報をもとにアプリの開発に役立てたいと思います。

今後ともよろしくお願いいたします。