-1

私は実際に、どのコンピューターでもインストールされているさまざまなクラウド ストレージのリストを見つけることができる小さなアプリケーションを作成しています。C# で Skydrive フォルダーへのパスを取得する方法を考えています。

appdata/roaming フォルダーに保存されている情報を使用して、Dropbox と Google ドライブのパスを取得できましたが、Skydrive で同じことを行うことができませんでした。

ドロップボックスの場合:

string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string dbPath = System.IO.Path.Combine(appDataPath, "Dropbox\\host.db");                string[] lines = System.IO.File.ReadAllLines(dbPath);                
byte[] dbBase64Text = Convert.FromBase64String(lines[1]);
string folderPath = System.Text.ASCIIEncoding.ASCII.GetString(dbBase64Text);

Google ドライブの場合:

String dbFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Google\\Drive\\sync_config.db");

            File.Copy(dbFilePath, "temp.db", true);
            String text = File.ReadAllText("temp.db", Encoding.ASCII);

            // The "29" refers to the end position of the keyword plus a few extra chars
            String trim = text.Substring(text.IndexOf("local_sync_root_pathvalue") + 29);

            // The "30" is the ASCII code for the record separator
            String drivePath = trim.Substring(0, trim.IndexOf(char.ConvertFromUtf32(30)));

skydrive フォルダーへのパスを取得する場合は、HKEY_CURRENT_USER\Software\Microsoft\SkyDrive の Registery 値を UserFolder という名前で使用する必要があります。コードは次のとおりです。

String SkyDriveFolder = Registry.GetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\SkyDrive", "UserFolder",null).ToString();  
4

3 に答える 3

3

skydrive フォルダーへのパスを取得する場合は、HKEY_CURRENT_USER\Software\Microsoft\SkyDrive の Registery 値を UserFolder という名前で使用する必要があります。コードは次のとおりです。

String SkyDriveFolder = Registry.GetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\SkyDrive", "UserFolder",null).ToString();  
于 2013-05-24T12:22:46.890 に答える
1

Windows 7 では、SkyDrive プログラムをインストールすると、SkyDrive パスが次の場所にあるようです。

HKEY_CURRENT_USER\Software\Microsoft\SkyDrive

ただし、Windows 8 では SkyDrive はオペレーティング システムの一部であるため、パスは次の場所に保存されます。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SkyDrive

クロスプラットフォームの互換性を高めるには、両方のレジストリ キーを確認してください。

于 2013-07-09T18:33:28.710 に答える