2013-03-27 17:15:53 hekunhotmail 阅读数 3269
+ (NSMutableArray *)SeachAttachFileInDocumentDirctory{
    
    NSMutableArray *attachArray = [[NSMutableArray alloc]init];
    NSFileManager *fm = [NSFileManager defaultManager];
    //如果没有目录则创建信息存储目录
    [fm createDirectoryAtPath:[kDocumentsPath stringByAppendingPathComponent:@"MsgContent"]
                             withIntermediateDirectories:YES
                                              attributes:nil
                                                   error:nil];
    //递归枚举目录
    NSString *dir = [NSString stringWithFormat:@"%@/MsgContent",kDocumentsPath];
    NSDirectoryEnumerator *dirEnumerater = [fm enumeratorAtPath:dir];
    NSString *filePath = nil;
    while(nil != (filePath = [dirEnumerater nextObject])) {
        
        //NSLog(@"%@",filePath);
        NSString *msgdir = [NSString stringWithFormat:@"%@/MsgContent/%@",kDocumentsPath,filePath];
        BOOL isDir;
        if ([fm fileExistsAtPath:msgdir isDirectory:&isDir]) {
            if (!isDir){
                //读取不是目录得文件 将图片与附件遍历出来
                if([[filePath lastPathComponent] isEqualToString:@".DS_Store"])
                    continue;
                
                if([[filePath lastPathComponent] isEqualToString:@"index.htm"])
                    continue;
                
                if([[filePath lastPathComponent] isEqualToString:@"index.html"])
                    continue;
                
                AttachInfo *attachinfo = [[AttachInfo alloc]init];
                
                //获取文件名
                [attachinfo setAttachName:[filePath lastPathComponent]];
                //文件大小
                int size = getFileSizeFromPath((char *)[msgdir UTF8String]);
                [attachinfo setAttachSize:[NSString stringWithFormat:@"%d Bytes",size]];
                //文件全路径
                [attachinfo setAttachPath:msgdir];
                //文件类型
                [attachinfo setAttachtype:[filePath pathExtension]];
                //文件所属GUID
                NSArray *pathComponentsArr = [filePath pathComponents];
                [attachinfo setAttachLocalMsgGUID:[pathComponentsArr objectAtIndex:0]];
                //文件修改时间
                NSDictionary *attributes = [fm attributesOfItemAtPath:msgdir error:nil];
                NSDate *theModifiDate;
                if ((theModifiDate = [attributes objectForKey:NSFileModificationDate])) {
                    
                    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
                    [formatter setDateFormat:@"yyyy年M月d日 H点m分"];
                    [attachinfo setAttachModifyDate:[formatter stringFromDate:theModifiDate]];
                    [formatter release];
                }
                [attachArray addObject:attachinfo];
                [attachinfo release];
                
            }
        }
    }
//    for (AttachInfo *obj in attachArray) {
//        NSLog(@"attachLocalMsgGUID %@",[obj attachLocalMsgGUID]);
//        NSLog(@"attachName %@",[obj attachName]);
//        NSLog(@"attachtype  %@",[obj attachtype]);
//        NSLog(@"attachSize  %@",[obj attachSize]);
//        NSLog(@"attachPath  %@",[obj attachPath]);
//        NSLog(@"attachPath  %@",[obj attachModifyDate]);
//    }
    return [attachArray autorelease];
    
}

2016-02-24 10:51:04 DaMing_XiaoZhi 阅读数 636

 

//js方法遍历图片添加点击事件 返回图片个数

    static  NSString * const jsGetImages =

    @"function getImages(){\

    var objs = document.getElementsByTagName(\"img\");\

    for(var i=0;i<objs.length;i++){\

    objs[i].onclick=function(){\

    document.location=\"myweb:imageClick:\"+this.src;\

    };\

    };\

    return objs.length;\

    };";

    

    [webView stringByEvaluatingJavaScriptFromString:jsGetImages];//注入js方法

    

    //注入自定义的js方法后别忘了调用 否则不会生效(不调用也一样生效了,,,不明白)

    NSString *resurlt = [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];

    //调用js方法

    NSLog(@"---调用js方法--%@  %s  jsMehtods_result = %@",self.class,__func__,resurlt);





- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

    //url转换为string

    NSString *requestString = [[request URL] absoluteString];

    //    NSLog(@"requestString is %@",requestString);

    

    //hasPrefix 判断创建的字符串内容是否以pic:字符开始

    if ([requestString hasPrefix:@"myweb:imageClick:"]) {

        NSString *imageUrl = [requestString substringFromIndex:@"myweb:imageClick:".length];

        //        NSLog(@"image url------%@", imageUrl);

        

        if (bgView) {

            //设置不隐藏,还原放大缩小,显示图片

            bgView.hidden = NO;

            imgView.frame = CGRectMake(10, 10, SCREEN_WIDTH-40, 220);

            [imgView setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:[UIImage imageNamed:@""]];

        }

        else

            [self showBigImage:imageUrl];//创建视图并显示图片

        

        return NO;

    }

    return YES;

}


#pragma mark 显示大图片

-(void)showBigImage:(NSString *)imageUrl{

    //创建灰色透明背景,使其背后内容不可操作

    bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HIGHT)];

    [bgView setBackgroundColor:[UIColor colorWithRed:0.3

                                               green:0.3

                                                blue:0.3

                                               alpha:0.7]];

    [self.view addSubview:bgView];

    

    //创建边框视图

    UIView *borderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH-20, 240)];

    //将图层的边框设置为圆脚

    borderView.layer.cornerRadius = 8;

    borderView.layer.masksToBounds = YES;

    //给图层添加一个有色边框

    borderView.layer.borderWidth = 8;

    borderView.layer.borderColor = [[UIColor colorWithRed:0.9

                                                    green:0.9

                                                     blue:0.9

                                                    alpha:0.7] CGColor];

    [borderView setCenter:bgView.center];

    [bgView addSubview:borderView];

    

    //创建关闭按钮

    UIButton *closeBtn = [UIButton buttonWithType:UIButtonTypeCustom];

    //    [closeBtn setImage:[UIImage imageNamed:@"close.png"] forState:UIControlStateNormal];

    closeBtn.backgroundColor = [UIColor redColor];

    [closeBtn addTarget:self action:@selector(removeBigImage) forControlEvents:UIControlEventTouchUpInside];

    [closeBtn setFrame:CGRectMake(borderView.frame.origin.x+borderView.frame.size.width-20, borderView.frame.origin.y-6, 26, 27)];

    [bgView addSubview:closeBtn];

    

    //创建显示图像视图

    imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, CGRectGetWidth(borderView.frame)-20, CGRectGetHeight(borderView.frame)-20)];

    imgView.userInteractionEnabled = YES;

    [imgView setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:[UIImage imageNamed:@""]];

    [borderView addSubview:imgView];

    

    //添加捏合手势

    [imgView addGestureRecognizer:[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinch:)]];

    

}

//实现关闭和捏合手势的方法


//关闭按钮

-(void)removeBigImage

{

    bgView.hidden = YES;

}


- (void) handlePinch:(UIPinchGestureRecognizer*) recognizer

{

    //缩放:设置缩放比例

    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);

    recognizer.scale = 1;

}









2013-05-27 20:55:06 shuefmlk 阅读数 1990
 //_______数据库临时获取_________
    
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDirectory = [path objectAtIndex:0];
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"car_business" ofType:@"db"];
    NSString *dstPath = [docDirectory stringByAppendingPathComponent:@"car_business.db"];
    NSLog(@"%@",filePath);
    [[NSFileManager defaultManager] copyItemAtPath:filePath toPath:dstPath error:nil];
其他没什么 就是要在目的路径添加文件名称 就是 指向Doc目录的地址添加文件名字和扩展名
2015-10-26 22:32:33 gentleyu1994 阅读数 1146
  1. 直接在聊天框中左拉删除,sqllite数据库中仍存在聊天记录,只是不显示而已
  2. 直接删除好友,数据库中将删除有关的表,因此无法进行找回备份

软件环境:windows 7,IOS 9, itunes,pp助手,SQLite Expert Personal 3


步骤:
一、itunes进行备份,不备份应用程序

二、打开pp助手备份管理,进入后点击tencent.xin 导出Document

三、遍历找到DB文件夹,进入后用SQLite Expert Personal 3(navicat for sqllite应该也可以)打开MM.sqlite

四、看你的毅力咯。找吧

2014-02-07 15:08:53 u013523354 阅读数 343

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


1.DOM基础

使用for循环遍历对象中的方法和属性
for(var e in document){
alert(e);
}//获得对象所有的成员,对象的成员就是以对象的key形式出现的。
var p1=new Object();
p1.Name="tom";
p1.Age=30;
p1.SayHello()=function(){alert("hello")};
for(var e in p1){
alert(e);
}


2.事件
点击事件:
<body onmousedown="alert('hello'):alert('hello2')">点击鼠标的时候执行的代码。事件响应代码太多可以放到单独的函数中。
<script type="text/javascript">
  function bodymousedown(){
alert("网页被点坏了,赔吧!");
alert("逗你玩呢!");
}
</script>
<body onmousedown="bodymousedown()">
bodymoousedown后的括号不能丢,表示调用函数,而不是onmousedown时间的响应函数是bodymousedown.


动态设置事件:
可以在代码中动态设置时间响应函数。
function f1(){alert("1");}
function f2(){alert("2");}


<input type="button" on click="document.ondblclick=f1" value="关联时间1"/>
<input type="button" onclick="document.ondblclick=f2" value=关联事件2"/>


3.Window对象
window对象代表当前浏览器窗口,使用window对象的属性、方法的时候可以省略window,比如window.alert('a')可以省略成alert('aa').


alert方法:
confirm方法:显示确定,取消对话框,如果按了确定对话框就返回true,否则false。
if(confirm("是否继续?")){
alert("确定")}
else{
alert("取消")
}


navigate function:
navigate("http://www.baidu.com");


setInterval function
setInterval("alert('Hello')",5000);
函数每隔5000毫秒被执行一次。


clearInterval function
取消setInterval的定时执行,相当于Timer中的Enable=False.因为setInterval可以设定多个定时,所以clearInterval要指定清除那个定时器的标识,即setInterval的返回值。
var intervalld=setInterval("alert('hello')",5000);//被执行的代码是字符串格式,也可以写一个匿名函数。
clearInterval(Intervalld);


setTimeout 超时定时:
只执行一次,clearTimeout也是清除定时。


4.body、document对象的事件
<1>onload:网页加载完毕时触发,浏览器是一边下载文档、一遍解析执行,可能会出现JavaScript执行时需要操作某个元素,这个元素还没有加载,如果这样就要把操作的代码放到onload事件中,或者可以把JavaScript放到元素之后。
<2>onunload:网页关闭或者离开后触发。
<3>onbeforeunload:在网页准备关闭或者离开后触发。在时间中为"window.event.returnValue"赋值(要显示的警告信息),这样窗口离开就会弹出确认消息<body onbeforeunload="window.event.returnValue='真的要放弃退出吗?;'">
<4>除了有特有的属性之外,还有通用的HTML元素的事件:
onclick(单击)、ondblclick(双机)、onkeydown(按键按下)、onkeypress(点击按键)、onkeyup(按键释放)、onmousedown(鼠标按下)、onmousemove(鼠标移动)、onmouseout(鼠标离开元素范围)、onmouseover(鼠标移动到元素范围)、onmouseup(鼠标按键释放)等。


5.window对象的属性
1.当前页面的地址
window.location.href="http://www.itcast.cn",重新导向新的地址,和navigate方法效果一样,window.location.reload()刷新页面。


2.window.event事件对象
altKey、ctrlKey、shiftKey属性,表示事件发生时候alt、ctrl、shift键是否被按下。
clientX、clientY:事件发生时鼠标在客户区的坐标。
screenX、screenY:事件发生时鼠标在屏幕的坐标
offsetX、offsetY发生事件时鼠标相对于事件源的坐标。
returnValue属性:如果将returnValue设置为false,就会取消事件的处理。
srcElement:获得事件源对象
keyCode:发生事件时按键值
button:发生事件时鼠标按键,1为左键,2为右键,3为左右键同时按。


3.screen对象,屏幕的信息.screen.width screen.height


4.clipboardData对象,对粘贴板的操作。clearData("Text")清空粘贴板;getData("Text")读取粘贴板的值,返回值为粘贴板中内容;SetData("Text",val)设置粘贴板中的值。当复制body的oncopy方法被触发,直接return false就是禁止复制。


5.history操作历史记录:
window.history.back()后退;window.history.forward()前进;也可以用window.history.go(-1)、window.history.go(1)来前进后退。


6.document属性


7.document的方法
<1>write:向文档中动态写入内容。只有在页面加载过程中,write才会与原先内容融合在一起,在onclick等事件中写的代码会冲掉页面中的内容。内容联盟、广告代码用的很多,只需要嵌入就可以了。
<2>getElementById方法:根据元素的Id获取对象,网页这种id不能重复。也可以直接通过元素的id来引用元素,但是有有效范围之类的问题,因此不建议直接通过id操作元素,而是通过getElementById。
<3>getElementByName,根据元素的name获得对象,由于页面中name可以重复,比如多个RadioButton的name一样,因此getElementByName返回一个对象数组。
<4>getElementsByTagName:根据标签的名字获得所欲元素的数组。


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

没有更多推荐了,返回首页