DriveInfo.IsReady를 사용하려고했지만 포맷되지 않은 플로피가 드라이브에 있으면 false를 반환합니다.드라이브에 플로피가 있는지 어떻게 알 수 있습니까?
답변
플로피에서 섹터를 읽고 항상 성공하는지 확인할 수 있습니다.
.NET에서이 작업을 수행하는 데 실마리가 없지만 여기에는 C/C++와 동일한 기능이 있습니다.
SetLastError(0);
HANDLE h = CreateFile("\\\\.\\A:", ...);
if (!ReadFile(h, buf, 512, &bytes_read, 0))
{
DWORD err = GetLastError();
}
간단히 말하면 다음과 같습니다. 플로피 드라이브는이를 지원하지 않습니다.
플로피 드라이브 DO 미디어 검색 지원, 메모장에서 비어있는 드라이브 또는 포맷되지 않은 디스크가있는 드라이브에 저장해보십시오. 메모장은 두 가지 다른 응답을 제공합니다. –
실패하기 전에 디스크 액세스 표시등이 켜집니다. 메모장은 디스크의 섹터를 읽으려고 시도하고 실패하면 "디스크를 넣으십시오"라는 메시지를 표시합니다. – OwenP
현재 컴퓨터에 플로피 드라이브가 없으므로 테스트 할 수 없습니다. 이 예외는 드라이브를 사용할 수 없을 때 발생합니다. 이는 플로피 드라이브가 비어있을 때 충족 될 것으로 생각되는 조건입니다.
지금까지 플로피 케이스가없고 포맷되지 않은 플로피 케이스에 대해 다르게 작동하는 .Net 메소드를 찾을 수 없습니다. –
아마 당신은 ... 그것은 당신에게 (서식 여부) 디스크의 용량을 말할 수 있어야 ... 디스크 관리 API에
볼 수 있습니다 그리고 더 용량이 존재하지 않는 경우, 플로피 없다 삽입 됨 ...
DiscNotReady (드라이브에 디스크가없는 경우)를 모두 트래핑하고 예외 (파일 시스템이 잘못되었거나 포맷되지 않은 경우)를 작성하십시오.
조나스 물건 일 : 당신이 당신의 플로피 드라이브에 포맷되지 않은 플로피 디스크를 삽입하면
bool MyDll::Class1::HasFloppy(wchar_t driveLetter) {
wchar_t path[] = L"\\\\.\\A:";
path[ 4 ] = driveLetter;
SetLastError(0);
HANDLE drive = CreateFile(path, //__in LPCTSTR lpFileName,
GENERIC_READ, //__in DWORD dwDesiredAccess,
0, //__in DWORD dwShareMode,
0, //__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
OPEN_EXISTING, //__in DWORD dwCreationDisposition,
0, //__in DWORD dwFlagsAndAttributes,
0 //__in_opt HANDLE hTemplateFile
);
DWORD bytes_read;
char buf[ 512 ];
DWORD err(0);
if(!ReadFile(drive, buf, 512, &bytes_read, 0))
err = GetLastError();
CloseHandle(drive);
return err != ERROR_NOT_READY;
은}
달콤한 :) 해피 해킹! –
매우 좋지만 .NET과 같이 보이지는 않습니다. –
, 목적은 보통 것을 사용하는 것 그 플로피 디스크로 플로피 드라이브. 첫 번째 단계는 논리적으로 플로피 디스크를 포맷하는 것입니다.
따라서 준비가되지 않은 플로피 드라이브를 발견하면 디스크를 포맷 할 수 있으며, 성공하면 플로피 드라이브에 새로 포맷 된 플로피 드라이브가 준비되어 있어야합니다. 플로피 드라이브가 포맷되지 않은 경우 플로피 디스크가 없거나 플로피 디스크에 결함이 있습니다. 그런 다음 드라이브에 플로피 디스크를 넣으라는 메시지를 표시 할 수 있습니다.
- 1. 개체가 비어 있는지 어떻게 알 수 있습니까?
- 2. 요소가 목록에 있는지 어떻게 알 수 있습니까?
- 3. 파이썬에 자식이 있는지 어떻게 알 수 있습니까?
- 4. QLineEdit에 포커스가 있는지 어떻게 알 수 있습니까?
- 5. Dispatcher.DisableProcessing이 활성화되어 있는지 어떻게 알 수 있습니까?
- 6. 오픈 릴레이가 있는지 어떻게 알 수 있습니까?
- 7. Java에서 누수가 있는지 어떻게 알 수 있습니까?
- 8. 컨트롤이 시각화되고 있는지 어떻게 알 수 있습니까?
- 9. 원격 드라이브에 C#을 사용하여 파일을 쓸 수있는 충분한 공간이 있는지 어떻게 알 수 있습니까?
- 10. 클래스를 직렬화 할 수 있는지 어떻게 알 수 있습니까?
- 11. scp를 Perl에서 사용할 수 있는지 어떻게 알 수 있습니까?
- 12. PostgreSQL에서 트리거를 사용할 수 있는지 어떻게 알 수 있습니까?
- 13. 안드로이드에서 파일을 읽고 쓸 수 있는지 어떻게 알 수 있습니까?
- 14. 모바일 네트워크를 사용할 수 있는지 여부를 어떻게 알 수 있습니까?
- 15. iPhone 앱에서 외부에서 볼 수 있는지 어떻게 알 수 있습니까?
- 16. MFC에서 CComboBox를 사용할 수 있는지 어떻게 알 수 있습니까?
- 17. AUCTeX를 사용할 수 있는지 어떻게 알 수 있습니까?
- 18. 어떻게 알 수 있습니까?
- 19. 어떻게 C : \ 드라이브에 디렉터리를 만들 수 있습니까?
- 20. Silverlight 컨트롤의 속성에 바인딩이 연결되어 있는지 어떻게 알 수 있습니까?
- 21. 시스템 트레이의 풍선 팁이 닫혀 있는지 어떻게 알 수 있습니까?
- 22. .NET 3.5 SP1이 설치되어 있는지 어떻게 알 수 있습니까?
- 23. 코드가 TransactionScope 안에 있는지 어떻게 알 수 있습니까?
- 24. Windows Installer가 설치되어 있는지 어떻게 알 수 있습니까?
- 25. 시스템의 전원이 켜져 있는지 어떻게 알 수 있습니까?
- 26. NSUserDefaults가 이미 저장되어 있는지 어떻게 알 수 있습니까?
- 27. hadoop namenode가 이미 포맷되어 있는지 어떻게 알 수 있습니까?
- 28. 정규식을 사용하여 문자열에 10 자리가 있는지 어떻게 알 수 있습니까?
- 29. IIS가 실제로 내 HTML을 압축하고 있는지 어떻게 알 수 있습니까?
- 30. cURL : 쿠키가 올바르게 설정되어 있는지 어떻게 알 수 있습니까?
플로피 란 무엇입니까? – FlySwat
첫 번째 응답은 "드라이브를보세요." 하지만 그건 쓸모가 없다는 것을 깨달았습니다. 플로피 드라이브가 더 이상 필요하지 않은 이유는 무엇입니까? –
그건 의미가 있지 않니? UNFORMATTED 디스크는 분명히 준비가되어 있지 않습니다 :-) –