小编Sea*_*ord的帖子

C#.net识别zip文件

我目前正在使用SharpZip api处理我的zip文件条目.它适用于压缩和解压缩.但是,我无法确定文件是否为zip文件.我需要知道是否有办法检测文件流是否可以解压缩.原来我用过

FileStream lFileStreamIn = File.OpenRead(mSourceFile);
lZipFile = new ZipFile(lFileStreamIn);
ZipInputStream lZipStreamTester = new ZipInputStream(lFileStreamIn, mBufferSize);// not working
lZipStreamTester.Read(lBuffer, 0, 0);
if (lZipStreamTester.CanDecompressEntry)
{
Run Code Online (Sandbox Code Playgroud)

LZipStreamTester每次都变为null,if语句失败.我尝试使用/不使用缓冲区.任何人都可以提供任何有关原因的见解吗?我知道我可以检查文件扩展名.我需要的东西比那更明确.我也知道zip有一个神奇的#(PK的东西),但它不能保证它永远存在,因为它不是格式的要求.

另外我读到.net 4.5有本机zip支持,所以我的项目可能会迁移到而不是sharpzip,但我仍然需要没有看到类似于CanDecompressEntry的方法/参数:http://msdn.microsoft.com/en-我们/库/ 3z72378a%28V = vs.110 29%

我的最后一招是使用try catch并尝试解压缩文件.

c# zip sharpziplib .net-4.5

15
推荐指数
3
解决办法
2万
查看次数

ios7所有搜索视图和桌面视图关闭20像素

编辑:这不是框架的问题.框架在正确的位置.这是关闭的内容.是的,我们正在补偿明确的状态栏.ViewDidLoad显示内容偏移量为0,0.

在我的应用程序的每个页面上都有一个滚动视图,它的内容被按下20像素.我认为它可能与新的StatusBar有关,或者没有.该错误似乎也出现在模拟器设置菜单中.截图如下.这似乎只影响添加到ViewController的第一个滚动视图,并且只有在没有添加其他视图的情况下才会这样.表视图也受到影响,因为它们从Scroll视图继承.要清楚,滚动视图从正确的原点开始,但内容按下20像素.这很奇怪,因为我认为如果它是一个状态栏问题,它将高于20像素而不是低于.

目前我们正在通过将其添加到我们的基本视图控制器来修复它

UIView *hackView = [[UIView alloc] init];
hackView.frame = CGRectMake(0, 0, 0, 0);
[self.view addSubview:hackView];
Run Code Online (Sandbox Code Playgroud)

显然,这是一个黑客.

在构建最新的IOS7时,即使使用IOS7的金牌会员版本,手机和模拟器也会发生同样的事情.您甚至可以在模拟器的设置表视图中看到该错误的示例,也可以在我们的下面看到.

在此输入图像描述

IOS7设置

这是加载后的屏幕截图.我们注意到的一个奇怪的事情是,当我们执行一个拉动刷新时,它将纠正滚动视图并停留在它的正确位置.或者,如果我们进行补偿,它在开始时看起来是正确的,但任何后续的刷新操作都会将scrollview迁移到-20px

iphone objective-c ios ios7

5
推荐指数
1
解决办法
2852
查看次数

为什么两个init函数都被调用

如果我有一个像这样设置的类来自定义UIView.

@interface myView:UIView

- (id)init {
    self = [super init];
    if(self){
        [self foo];
    }
    return self;
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        [self foo];
    }
    return self;
}


-(void) foo{
   //Build UIView here 
}
Run Code Online (Sandbox Code Playgroud)

为什么我会使用foo两次

myView *aView = [[myView alloc]init]]; 
Run Code Online (Sandbox Code Playgroud)

要么

myView *aView = [[myView alloc]initWithFram:aFrame]; 
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c ios

4
推荐指数
1
解决办法
365
查看次数

在AppCode中搜索文件名

有没有办法搜索我的项目中的所有文件名?

在Xcode中,底部的镜头搜索项目中所有文件的名称,这是一种非常快速和直观的方式来浏览您熟悉的项目.
Appcode中有类似的东西吗?

appcode

4
推荐指数
1
解决办法
565
查看次数

C++中的模板化类

以下是我的代码.我正在使用GNU G ++编译器.我收到错误"main.cpp:在函数中'int main()':main.cpp:12:9:错误:'class hash'没有名为'printVectorContents'的成员"

我知道我忽略了一些愚蠢的东西,我无法用手指指着它.有帮助吗?

int main()
{
    std::cout << "Yeah you did dat"<<std::endl;
    hash<int> newHash;
    newHash.printVectorContents();
    std::cin.get();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

和我的模板课......

template <class dataTypeClass> class hash{
private:
    std::vector <dataTypeClass> hashVector;
    std::string mName;
public:
    hash(){}
    hash(std::string aName = "unnamedHash"):mName(aName),hashVector(100,NULL){}
    ~hash(){std::cout<<"Hash "<<mName<<"destructing!";}
    void addHashItem(dataTypeClass aHashItem, std::string akey){}
    int hashFunction(dataTypeClass hashItem){return 0;}
    void printVectorContents()
    {
        for (typename std::vector<dataTypeClass>::iterator i = hashVector.begin(); i<hashVector.rend(); i++)
        {
            std::cout<< *i << std::endl;
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ templates vector

0
推荐指数
1
解决办法
152
查看次数

标签 统计

ios ×2

objective-c ×2

.net-4.5 ×1

appcode ×1

c# ×1

c++ ×1

cocoa-touch ×1

ios7 ×1

iphone ×1

sharpziplib ×1

templates ×1

vector ×1

zip ×1