|
다름이 아니라...아래와 같이 알려주는 방식을로 코딩을 했거든요..
저가 봐도 별 문제 없는데...
문제점은 다음과 같습니다...
지정한 위치(원하는 위치에...DATA 라는 폴더를 만들고..거기에 저장하기 원함)에 폴더를 만들고
엑셀 파일 형태로 바꾸어주는 작업을 한 다음에..
저장을 하는데....(C:\Program Files\Application_name\DATA) 형태로..저장하는데..
이게...세이브 다이얼로그 박스가 뜨는데....처음 경로가...[내 문서]로 잡혀 있고..
여기서..저장을 하면....(이때까지..내가 원하는 경로에..DATA..라는 폴더가 안만들어지고..)
[내 문서]에 엑셀파일로 저장은 되고...저장 한 다음에...DATA 폴더가 만들어집니다..
이 같은 경우는 어떻게 해야하나요.?????
참고로...제 PC(win2000)에서는 잘되거든요...근데...다른 PC에서(윈도우98)에서는 위와 같은 경우가
생기더군요....
저가 만든 부분의 소스는 다음과 같습니다..
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void __fastcall TForm4::Button2Click(TObject *Sender)
{
AnsiString ExcelFile;
// String path = ExtractFilePath (Application->ExeName) + (String)"Data";
String path = ExtractFilePath (ParamStr (0)) + (String)"Data";
// ShowMessage(path);
if (!DirectoryExists(path)) //디렉토리가 없으면...
{
if(CreateDir(path)) // 디렉토리를 만들고...
{
SaveDialog1->Execute(); // 세이브 다이얼 로그 박스가 뜬다음..
ExcelFile = SaveDialog1->FileName; // 파일이름을 가지고 와서..
//엑셀로 변환
SMExportToXLS3->FileName = ChangeFileExt(AnsiString(ExcelFile), ".xls");
SMExportToXLS3->Execute();
ModalResult = mrOk;
}
else
throw Exception("Cannot create directory.");
}
else
{
SaveDialog1->Execute();
ExcelFile = SaveDialog1->FileName;
SMExportToXLS3->FileName = ChangeFileExt(AnsiString(ExcelFile), ".xls");
SMExportToXLS3->Execute();
ModalResult = mrOk;
}
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
동작은 잘하는데....폴더를 만들고, 저장하는 경로가 문제 입니다..
부탁드립니다...
수고하세요..
======================================================================================
일반적으로 프로그램 소스 내에서는 절대 경로를 사용합니다.
프로그램이 실행된 path를 찾을려면 여러가지가 많은데
String path = ExtractFilePath (Application->ExeName) + (String)"Data";
// 혹은 String path = ExtractFilePath (ParamStr (0)) + (String)"Data";
if (!DirectoryExists(path))
{
if(!CreateDir(path))
throw Exception("Cannot create directory.");
// 저장하기 작업이 일어남
}
else
{
// 저장하기 작업이 일어남
}
처리 님이 쓰신 글 :
: 다음의 코드와 같이.....인스톨을 한 다음...만약에....
: 폴더가 없으면...그 프로그램의 서브로 디렉토리를 만드는 방법...인데..
: 코드는...
:
: ===================================================================================
: if (!DirectoryExists("..\\DATA"))
: {
: if(!CreateDir(".\\DATA"))
: throw Exception("Cannot create directory.");
:
: // 저장하기 작업이 일어남
: }
: else
: {
: // 저장하기 작업이 일어남
: }
: =========================================================================================
:
: 그런데...문제는
:
: if(!CreateDir(".\\DATA")) 이부분인데....
:
: 만약에..내가 인스톨을 해서....C:\Program Files\Application_name 이라는 곳에 프로그램이
: 깔렸는데.....Application_name의 하위로...DATA라는 폴더가 없으면...이 폴더를 만들고...
: 있으면...그 곳에 저장하고자 합니다....
:
: 그런데...저가 코딩한 PC에서는 되거든요..
: 근데...인스톨 시디를 만들어서....셋업한 후에.....이 기능을 할려고 하니...까...
: Cannot create directory.........라는 메시지가 나오더군요...
: 이것을 해결할 방법좀...부탁드립니다....
: 꾸벅~~~
:
:
|