//
//  FileControl2.h
//
//  Created by AIG-Soft on 2012/8/13
//  Copyright 2012-2015 AIG-Soft. All rights reserved.
//

#import <Foundation/Foundation.h>
#include <stdio.h>

NSArray *files(NSString *basepath,NSString *ext,BOOL fhave,int mode,BOOL freg);
// files(mode)指定 : OR指定可能
#define FILES_FILE	0x0001
#define FILES_DIR	0x8000
#define FILES_ALL	(FILES_DIR|FILES_FILE)
// files(area)指定 : この関数には存在しないが、X-BASICのfilesで設定するので、ここに置いておく
#define	FILES_FAREA_USER	0x00001
#define	FILES_FAREA_SYSTEM	0x00002
#define	FILES_FAREA_ALL		(FILES_FAREA_USER|FILES_FAREA_SYSTEM)
//
NSString *makeFullPathForTemporaryPath(NSString *basename);
NSString *getDocumentsPath(void);
NSString *getResourcePath(void);
NSString *getSystemPath(void);
#define	makeDocumentsPath()	getDocumentsPath()	// 旧バージョンとの互換性のため

NSString *replaceDirectory(NSString *path,NSString *repDir);
NSString *autoReplaceDocumentOrResourceDirectory(NSString *path);

NSString *makeFullPathForSaveData(NSString *fname);
char *makeFullPathForSaveDataWithCString(char *fname);

NSString *makeFullPathForSystem(NSString *fname);
char *makeFullPathForSystemWithCString(char *fname);

NSString *makeFullPathForSaveDataFromDate(NSString *basename);

void fileDelete(NSString *fname);
NSString *replaceExt(NSString *path,NSString *ext);
NSString *getResourceOrSavedataPath(NSString *fname);

// リソース内のパスを得る
// NSString *makeFullPathForResource(NSString *fname,NSString *ext)
#define	makeFullPathForResource(fname,ext) [[NSBundle mainBundle]pathForResource:fname ofType:ext]
	// これはファイル検索も兼ねているのでextは必須(fnameに入れてもいいが)
	// ファイルが見つからなかったらnilが返る

char *makeFullPathForResourceWithCString(char *fname);

BOOL fileCopy(NSString *src,NSString *des);
BOOL fileMove(NSString *src,NSString *des);
off_t filelength(FILE *fp);
BOOL isFileExist(NSString *path);
