- ベストアンサー
ボリューム名の取得できない原因とは?
- 質問1:ボリューム名は初期値という可能性もある事が最近わかりました。シリアル番号なら特定素材として適していますか?
- 質問2:ボリューム名が取れない原因が分からず、お手上げです。どのようなことが考えられますか?
- ボリューム名の取得について悩んでいます。特にボリューム名が初期値となる場合、シリアル番号を使用することが適しているのかどうかについて知りたいです。また、ボリューム名が取得できない原因についても教えてください。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- プロパティで ボリューム名が表示されない
どなたかよろしくお願いいたします。 いま、C言語でネットワークの割り当てを行っているフォルダのボリューム名を取得しようとしています。 結果としては値が戻ってきません。 「ボリューム名未設定のケースなのでは?」という指摘により エクスプローラで該当ドライブのプロパティを参照したところ なるほど空値(またはスペースが入っている?)でした。 ちなみに入力しようとしても不可能です。 質問がざっくり過ぎるかもしれませんが、このような場合は ボリューム名は取得できない とあきらめざるを得ないのでしょうか? よろしくお願いいたします。
- ベストアンサー
- Windows XP
- 新しいボリュームが作れない
Windows7でドライブDのアイコンが化けて戻せないため、他のドライブにバックアップ後ボリュームを削除し、改めて新しいシンプル ボリューム を作ることとしました。 ところが、ウィザードでボリュウムサイズをいくら小さくしても 「「十分なディスク領域がないので、この操作を完了できません。」 となってしまします。 PCを再起動してからやっても、何回やってもボリュウムがつくれません。 先にドライブDのアイコンが化けてと書きましたが、これは「Allway Sync 」と言う同期コピーソフトを使ってみたもののうまくゆかずこのソフトをアンインストールしたのですがドライブDのアイコンがAllway Syncというアイコンになってしまい元に戻せなくなってしまいました。 これを解消するためボリュームの作り直しを考えた次第です。 ドライブDの中味はは別のドライブに移しましたがこっちのアイコンもAllway Sync になってしまいました。 何か策はないででしょうかアドバイスお願いします。 ∇ ウィンドウ タイトル ∇
- ベストアンサー
- Windows 7
- ボリューム名の機能がよくわかりません。
mountvolコマンドで表示されるボリューム名の機能がよくわかりません。 ボリューム名はHDD側に保存されているのでしょうか? それとも、ボリューム名自体が、シリンダやトラック等、 HDDのある領域を指し示す役割を持っているのでしょうか? たとえば、 mountvol C:\DVDROM \\?\Volume{7f1a0b73-a297-11d3-9849-806d6172696f} というコマンドで、C:\DVDROMというマウントポイントに、第二引数のボリュームをマウントできる、という説明がありますが、 ボリューム名の文字列(GUID)で示される領域が、 HDD側では物理的にどの部分にあたるかというのは、 どうやって関連付けられているのでしょうか? SCSI等のコントローラがボリューム名からHDDの領域を割り出しているのでしょうか? たとえば、あるボリュームをD:\のマウントポイントにマウントした後に、 そのディスクを最初から最後まで完全にフォーマットして、 そのあとに、初めのボリューム名でマウントすると、 容量としての見え方はディスクをフォーマットする前と同じようになるのでしょうか? それとも、ディスク内に関連付けれる情報がなくなってしまったので、再度ボリューム名を作成してやるしかない、ということになるのでしょうか? UNIX系のOSにたとえてもらっても大丈夫です。 意味のわかりにくい質問になっていると思いますが、 質問の目的は、以下になります。 バックアップの手法として、同じ容量のディスクを2つ用意して、ディスク丸ごとの複製を取るという技術がありますが、 Windowsでそれをやる場合、 マスタ側とスレーブ側でボリューム名が違うのでないかと思っていまして、 マスタ側のディスクがスレーブ側に完全に複製されたあと、 スレーブ側で複製ディスクをマウントしたい場合、 マスタ側のボリューム名をスレーブ側に持ってきてマウントする必要があるのか、 それともスレーブ側でもともと持っていたボリューム名でマウントできるのか、 その場合、ボリューム名はどこに保管されていてHDD上のボリュームをどのように指し示すのか? と疑問に思い、質問しました。
- 締切済み
- Windows系OS
- ファイル名の取得
CreateFileの第一引数の pszFileName というのは、createfileで開いたファイル名ですよね? それをcharの配列にコピーして表示させようとしているのですが、 うまく表示されません。 (うまく表示されるときとされないときがあります。 wordを立ち上げた時のdatファイルなどは表示される) 日本語が入っていると表示されないのかと思いましたがそうでもないようです…。 開いたファイル名を取得するAPIがあるのかと思い、探してみましたが 見つかりません…。 getFileSize APIを使用することで、ファイルサイズを取得出来るのはわかったのですが、ファイル名を取得するにはどのAPIを使用すればよいのかが調べてもわかりません。 どなたかご存知のお方いられましたら、ご教授願います。 よろしくおねがいします。
- 締切済み
- C・C++・C#
- ドライブ文字からハードウェア名を取得する方法
タイトルの通り、ドライブ文字からハードウェア名(Win32_DiskDriveのCaptionで取得できるSAMSUNG HD103UJ ATA Deviceのような文字列)を取得する方法はないでしょうか? CD-ROMデバイスならWin32_CDRomDriveのDriveでドライブ文字が、Captionでハードウェア名が取得できるので対応付けができるのですが、ハードディスクやUSBメモリは対応付けができなくて困ってます。 QueryDosDeviceでドライブ文字から作成される文字列とsetupapiのSetupDiGetDeviceRegistryProperty(SPDRP_PHYSICAL_DEVICE_OBJECT_NAME)で取得される文字列を比較してデバイスを特定する方法も試してみたのですが、SetupDiGetDeviceRegistryPropertyではハードウェア名(フレンドリー名?)が取得できないようでした。 他にもGetVolumeNameForVolumeMountPointで取得したGUIDをレジストリで強引に検索して HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\CPC\Volume\{GUID}\Data内のデータからWMIでハードウェア特定に使えないかと考えたりしましたが、フォーマットも分からず万能ではなさそうでした。 どなたか、ドライブ文字からハードウェア名を取得する方法をご存じでしたら教えてください。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- ExcelVBAでサブフォルダ名などを取得したい
ExcelVBAで、Dドライブ内の特定のフォルダ(D:\My Documents等)の中にある全てのフォルダ名やファイル名を取得したいのですが、方法が分かりません。 Dドライブのすぐ下にあるフォルダはDirで取得できるようなのですが、サブフォルダ名が取得できないのです。 具体的にどのように書いたらよいかお教えいただけるとうれしいです。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- WTSEumerateSessionsでのデータの取得
以下のプログラムで、&SessionInfoに戻ってきた データを表示させたいのですがうまくいきません。 教えていただきたいです。 #include<stdio.h> #include<windows.h> #include<wtsapi32.h> int main(){ char* name; //NetBIOS名の入れ物 char*型 HANDLE handle; //HANDLEの戻り値を取得する入れ物 BOOL bWts; //BOOLの戻り値を取得する入れ物 LPVOID lpMsgBuf; //WTSOpenでバファの格納するための入れ物 DWORD BytesReturned; //WTSOpenでバイト数を格納するための入れ物 WTS_INFO_CLASS WTSInfoClass; //WTSOpenで使う 接続情報を調べたい PWTS_SESSION_INFOA SessionInfo=NULL; DWORD Count=0; DWORD Reserved=0; DWORD Version=1; name=NULL; handle =WTSOpenServer(name); bWts = WTSEnumerateSessions( handle, Reserved, Version, &SessionInfo, &Count ); printf("セッション数は %d です\n",Count); WTSFreeMemory(SessionInfo); return 0; }
- 締切済み
- C・C++・C#
- 外付HDDにボリューム名をつける方法を教えて下さい
誤って外付けHDDのボリュームまで削除してしまいました。 ディスクの管理ではディスク2として、デバイスマネージャーでも認識はされています。 しかし、ボリューム名が無いので通常の読み書きが出来ません。 そこでディスク管理で下記のような操作をしてボリューム作成を試みましたが失敗に終わりました。 このHDDを使えるようにするにはどうしたらいいでしょうか。よろしくお願いします。 なお、OSはwindows 7、HDDはLogitec USB2.0 HDD 40GBです。 ディスク管理での操作 新しいシンプルボリューム作成を選択 ↓ ボリュームサイズの指定。最大38192MB、最小8MB、シンプルボリュームサイズ38192MBと初期値をそのまま登録。(最小値にもしてみました) ↓ ドライブ文字の割り当て 規定値 I(重複はありません) ↓ このボリュームをフォーマットしないで次へ ↓ 新しいシンプルボリュームが作成されましたと表示される。 ↓ 完了 ↓ 十分なディスク領域がないので、この動作を完了できません。と表示される
- ベストアンサー
- その他(パソコン)
- カレントディレクトリの取得について
ゲームを作るのに、実行ファイルのフルパスが必要となりました。 「GetCurrentDirectory」を使ってパスを取得したのですが、 取得できたパスは、 「sers\NewChallenger\~(中略)~\GameData」 となってしまいます。 あたまの「sers」は「Users」で、本来なら、 「C:\Users\NewChallenger\~(中略)~\GameData」 となるはずなのですが。 取得に際しては、 char path[_MAX_PATH]; GetCurrentDirectory( _MAX_PATH, path ); というごく単純なことしかしていません。 このあと、バッファのサイズが小さすぎてところてん式に前の方が消えているのかと思い、 「_MAX_PATH」を「1000」として試してみたのですが、結果は変わらず。 いったい何が起こっているのでしょうか? どうすれば正しく取得できるのでしょうか?
- ベストアンサー
- C・C++・C#
- DELL 空白のボリュームを削除してよいか
DELLのパソコン(OPTIPLEX790)(Windows7)のハードディスクに ボリューム名が「OS(C:)」と「RECOVERY」というボリュームの他に ボリューム名が空白のボリュームがあります。 --------------------------------------------------- ボリューム名:(空白) ファイルシステム:(空白) 状態:正常(OEMパーティション) 容量:39MB 空き領域:39MB --------------------------------------------------- ディスク全体をバックアップしようとすると このボリュームが含まれているとエラーになります。 (このボリュームを外すとバックアップできます) ディスク管理でこのボリュームを選択して 右クリックしてもボリュームの削除は表示されないので (起動ディスクでもグレー表示で表示されるがグレー表示もされない) どうもこのボリュームは削除できないようです。 (問1) ディスク管理のdiskpartのcleanコマンドでも 削除することはできないのでしょうか。 (怖いので試していない) (問2) (cleanコマンドで削除できるとして) 削除してしまっても問題ないでしょうか。 (このボリューム以外をバックアップして、 cleanコマンドで削除して復元した場合など) よろしくお願いします。
- ベストアンサー
- デスクトップPC
お礼
回答ありがとうございます。 サンプルまで頂きまして恐縮です。 \\コンピュータ名\共有名または\\コンピュータ名\ドライブ名と言う形式の、一意の「ボリューム名」作成をしていきます。 サンプルは大切に使わせていただきます。 ありがとうございました。